如何在iPhone上执行NTLM挑战

如何在iPhone上执行NTLM挑战,iphone,ntlm,Iphone,Ntlm,我正在尝试访问iPhone应用程序中的一些web服务 如果我GET到.asmx页面,我将按照预期进行身份验证并获取WSDL 但是,如果我POST到.asmx页面,设置SOAPAction、内容类型、内容长度和HTTPBody,我只会不断收到didReceiveAuthenticationChallenge消息 此外,我正在尝试使用集成Windows身份验证(IWA)向IIS发布,这意味着我正在尝试协商NTLM挑战。听起来您的web服务具有不同的读取(获取)和写入(发布)权限。我不认为这是iPho

我正在尝试访问iPhone应用程序中的一些web服务

如果我
GET
到.asmx页面,我将按照预期进行身份验证并获取WSDL

但是,如果我
POST
到.asmx页面,设置SOAPAction、内容类型、内容长度和HTTPBody,我只会不断收到
didReceiveAuthenticationChallenge
消息


此外,我正在尝试使用集成Windows身份验证(IWA)向IIS发布,这意味着我正在尝试协商NTLM挑战。

听起来您的web服务具有不同的读取(获取)和写入(发布)权限。我不认为这是iPhone或NSURL连接的问题。

我不幸找到了答案。NSURLConnection无法进行NTLM身份验证。下面是一篇关于如何使用CFNetwork堆栈进行NTLM身份验证的文章

找到了比做那些无聊的事情更好的事情:一个已经做过的人


更新:有一个允许再次进行NTLM身份验证的应用程序

web客户端工作正常,如果我创建一个.Net应用程序,它也工作正常。但是我想我可以检查一下权限以防万一。GET和POST的权限是相同的。你确定吗?POST函数正在执行的某些操作可能需要身份验证,例如写入文件。.NET客户端很可能正在为您进行身份验证。您是否尝试过在HTTP调试器中进行调用?HTTP客户端表现出与GET相同的行为。持续的身份验证请求。此外,我尝试在每次请求时进行身份验证。在.Net和iPhone应用程序中,我使用相同的凭据。所以我不明白为什么一个比另一个更重要。谢谢!AsittpRequest正是我想要的。