Authentication NTLM身份验证失败,但基本身份验证有效
下面是应用程序在本地IIS上调用HTTP请求时在本地服务器上发生的情况Authentication NTLM身份验证失败,但基本身份验证有效,authentication,httpwebrequest,ntlm,networkcredentials,Authentication,Httpwebrequest,Ntlm,Networkcredentials,下面是应用程序在本地IIS上调用HTTP请求时在本地服务器上发生的情况 request.Credentials = CredentialCache.DefaultNetworkCredentials; request.PreAuthenticate = true; request.KeepAlive = true; 当我执行请求时,我可以在Fiddler中看到以下一系列HTTP调用: 未经授权的请求标头,导致401与WWW验证NTLM+协商 带有授权的请求:协商(Bas
request.Credentials = CredentialCache.DefaultNetworkCredentials;
request.PreAuthenticate = true;
request.KeepAlive = true;
当我执行请求时,我可以在Fiddler中看到以下一系列HTTP调用:
奇怪的是,如果我禁用站点的Windows身份验证并启用基本身份验证并显式发送user/pwd,那么一切都可以正常工作。如果我使用NTLM身份验证并尝试通过指定凭据的浏览器访问站点,它也会起作用。好吧,经过几个小时的努力,我发现了问题所在。为了能够检查Fiddler中的网络流量,我定义了Fiddler规则: 如果(oSession.HostnameIs(“MYAPP”){oSession.host=“127.0.0.1”;} 然后我在Web应用程序引用中使用了“MYAPP”而不是“localhost”,Fiddler愉快地显示了所有会话信息
但服务器安全性远不如此,因此此别名基本上破坏了本地服务器上的挑战-响应身份验证。一旦我用“localhost”替换了别名,一切都正常了。好吧,经过几个小时的努力,我终于找到了问题所在。为了能够检查Fiddler中的网络流量,我定义了Fiddler规则: 如果(oSession.HostnameIs(“MYAPP”){oSession.host=“127.0.0.1”;} 然后我在Web应用程序引用中使用了“MYAPP”而不是“localhost”,Fiddler愉快地显示了所有会话信息 但服务器安全性远不如此,因此此别名基本上破坏了本地服务器上的挑战-响应身份验证。一旦我用“localhost”替换了别名,一切都正常了