【发布时间】:2011-01-10 13:52:05
【问题描述】:
我在同一服务器 (IIS 7.5) 上托管的 2 个不同站点上使用了相同的代码库。
由于某种原因,当我检查 http 处理程序背后代码的 Identity.AuthenticationType 属性时,我看到一个站点的 NTLM 和另一个站点的协商。这导致了一些问题,我需要他们两个都使用 NTLM。
您能帮我弄清楚为什么会有这种差异吗?到目前为止,我看到两个 IIS 站点的配置方式相同,但当然至少有 1 个我无法检测到的差异。 谢谢!
编辑
我使用了this 链接,该链接提供了从 IIS 中删除“协商”提供程序的说明。它对我不起作用。我执行了
appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost
也许我做错了什么,但没有帮助。我仍然将“协商”视为 AuthenticationType
我遇到的问题是我正在设置 web.config 模拟凭据,但它没有使用它们。它不使用我提供的凭据,而是使用匿名用户。
奇怪的是 windowsAuthentication 被禁用了。我以为“协商”仅由 windowsAuthentication 使用。
【问题讨论】:
-
两个 asp.net 配置文件是否都指定了模拟?两者都在同一个安全区域吗?
-
@Simon:两个文件都指定了模拟。不知道如何检查安全区域。
-
安全区域是一种 IE 事物(Internet、Intranet、受信任、不受信任)。不适用于其他浏览器。
-
我正在使用 Firefox 进行测试,所以它似乎不适用 :(
-
两个站点是否在同一个域中运行?一个站点在域中运行,而另一个站点在工作组中运行?