以下是应用程序在本地IIS上调用HTTP请求时在本地服务器上发生的情况。
request.Credentials = CredentialCache.DefaultNetworkCredentials;
request.PreAuthenticate = true;
request.KeepAlive = true;当我执行请求时,我可以在Fiddler中看到以下一系列HTTP调用:
显然,客户机和服务器(都运行在同一台机器上)正在尝试握手,但最终授权失败。
奇怪的是,如果我禁用站点的Windows身份验证,启用基本身份验证并显式发送用户/pwd,则所有这些都能工作。如果我使用NTLM身份验证并尝试从指定凭据的浏览器访问站点,它也能工作。
发布于 2013-01-18 23:43:15
嗯,经过几个小时的挣扎,我想出了问题所在。为了能够检查Fiddler的网络流量,我定义了Fiddler规则:
if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1";}
然后,我在Web应用程序引用中使用了"MYAPP“而不是"localhost”,Fiddler愉快地显示了所有会话信息。
但是服务器安全性要差得多,所以这个别名基本上破坏了本地服务器上的挑战响应身份验证。一旦我用"localhost“替换了别名,它就都起作用了。
https://stackoverflow.com/questions/14404713
复制相似问题