我在正确配置 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 次。
我希望如果我正确配置了所有内容,域内客户端只会传递凭据并且生活会很好,但这不是正在发生的事情,生活也不好:-(
有人有什么建议吗?
401.2 通常意味着 IIS 不支持您尝试使用的身份验证类型。您确定启用了 Windows 集成身份验证吗?
检查 STAGING 计算机上的 IIS 设置 - 安全设置中的用户身份验证/登录设置(对于您的 SharePoint 站点所在的区域...)应设置为“使用当前用户名和密码自动登录” - 或者,如果您的 SharePoint 网站位于 Intranet 区域中,您可以使用“仅在 Intranet 区域中自动登录”
查看AuthDiag - 它旨在帮助诊断身份验证错误。