【发布时间】:2012-01-04 07:53:47
【问题描述】:
我们使用 NTLM 身份验证从 MonoTouch 应用程序访问 ASP.net Web 服务,一切正常。
我们的一位客户使用相同的应用程序,并且 NTLM 身份验证在我们的应用程序中失败,但在 iPad 的 Safari 浏览器中有效。
查看来自客户的数据包流,当我们的应用发送NTLMSSP_NEGOTIATE 消息时,服务器没有返回NTLMSSP_CHALLENGE。
查看我们应用程序的 NTLMSSP_NEGOTIATE 消息和 iPad 的 Safari 相同消息之间的差异
我们的 MT 应用程序将 NTLM 标志设置为 0xb203,而 Safari 将其设置为 0x88207。
NegotiateNtlm2Key 在我们的应用程序中设置为 0,在 Safari 中设置为 1
我们的应用程序还发送调用工作站域和名称字段,而 Safari 将两者都发送为 null。
客户端的服务器是 Windows Server 2003,它们也使用 Kerberos 作为主要的身份验证方案并使用 NTLM。
在Mono.Security.Protocol.Ntlm.NtlmFlags 中设置NegotiateNtlm2Key 标志会有帮助吗?
【问题讨论】:
标签: web-services mono xamarin.ios ntlm ntlmv2