我在正确配置 IIS 身份验证方面遇到了很多麻烦。我有一个在 IIS 6.0 下运行的 SharePoint 网站,并且该 IIS 网站配置为集成 Windows 身份验证。Web 服务器位于名为 的域上STAGING
,我的大多数用户都位于另一个名为 的域中CORP
。CORP
用户拥有STAGING
域帐户,并且能够跨域登录 SharePoint 网站(例如,用户登录到他们的CORP
工作站并能够登录网站)。但是,STAGING
域用户无法从域内登录STAGING
。我的理解是STAGING
域用户应该能够访问该网站而无需提示输入凭据,但事实并非如此。即便如此,一旦输入凭据,结果始终是 401。
我查看了 Fiddler 中的 HTTP 会话,发现服务器似乎不接受客户端浏览器发送的协商凭据。以下是简要记录:
HTTP GET server /sites/mysite with headers: { }
--> 401.2, with headers: { WWW-Authenticate: Negotiate, WWW-Authenticate: NTLM }
HTTP GET server /sites/mysite with headers: { Authorization: Negotiate <digest1> }
--> 401.1, with headers: { WWW-Authenticate: Negotiate <digest2> }
HTTP GET server /sites/mysite with headers: { Authorization: Negotiate <digest3> }
--> 401.1, with headers: { WWW-Authenticate: Negotiate <digest4> }
GET/401.1 循环重复 3 次,然后浏览器最终放弃。
我希望如果我正确配置了所有内容,域内的客户端只需传递凭据,生活就会很好,但事实并非如此,生活并不好 :-(
有人有什么建议吗?
答案1
401.2 通常意味着 IIS 不支持您尝试使用的身份验证类型。您确定已启用 Windows Integrated Auth 吗?
检查 STAGING 机器上的 IIS 设置 - 安全设置中的用户身份验证/登录设置(对于您的 SharePoint 站点所在的区域...)应设置为“使用当前用户名和密码自动登录” - 或者,如果您的 SharePoint 站点位于 Intranet 区域,您可以使用“仅在 Intranet 区域自动登录”
查看验证诊断- 它旨在帮助诊断身份验证错误。