首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NTLM-身份验证失败,但基本身份验证有效。

NTLM-身份验证失败,但基本身份验证有效。
EN

Stack Overflow用户
提问于 2013-01-18 17:53:01
回答 1查看 707关注 0票数 1

以下是应用程序在本地IIS上调用HTTP请求时在本地服务器上发生的情况。

代码语言:javascript
复制
    request.Credentials = CredentialCache.DefaultNetworkCredentials;
    request.PreAuthenticate = true;
    request.KeepAlive = true;

当我执行请求时,我可以在Fiddler中看到以下一系列HTTP调用:

  1. 在未经授权的情况下请求头,结果是401与WWW认证NTLM+Negotiate。
  2. 请求授权:协商(Base64字符串1),导致401与WWW认证:协商(Base64字符串2)
  3. 请求授权:协商(Base64字符串3),导致401与WWW认证:协商(Base64字符串4)
  4. 请求授权:协商(Base64字符串3),结果使用WWW认证NTLM+Negotiate

显然,客户机和服务器(都运行在同一台机器上)正在尝试握手,但最终授权失败。

奇怪的是,如果我禁用站点的Windows身份验证,启用基本身份验证并显式发送用户/pwd,则所有这些都能工作。如果我使用NTLM身份验证并尝试从指定凭据的浏览器访问站点,它也能工作。

EN

回答 1

Stack Overflow用户

发布于 2013-01-18 23:43:15

嗯,经过几个小时的挣扎,我想出了问题所在。为了能够检查Fiddler的网络流量,我定义了Fiddler规则:

if (oSession.HostnameIs("MYAPP")) { oSession.host = "127.0.0.1";}

然后,我在Web应用程序引用中使用了"MYAPP“而不是"localhost”,Fiddler愉快地显示了所有会话信息。

但是服务器安全性要差得多,所以这个别名基本上破坏了本地服务器上的挑战响应身份验证。一旦我用"localhost“替换了别名,它就都起作用了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14404713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档