我有一个。NET 3.5应用程序在 Windows 2003服务器的 IIS 7下运行,并且无法使集成的 Windows 身份验证正常工作,因为我继续收到登录提示。我已经在 IIS 中将 Windows 身份验证设置为启用,并且禁用了所有其他安全类型,我的应用程序 web.config 文件身份验证/授权设置为:
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="3.5" />
<authenticationmode="Windows"/>
<authorization>
<deny users = "?" />
</authorization>
</system.web>
通过这个设置,我希望 Windows 用户的场景验证能够允许访问和拒绝匿名用户。然而,当我试图访问该网站时,我得到的是一个 Windows 登录弹出窗口。
我已经对这个问题进行了几天的故障排除,但是还是没有找到问题所在。基于类似问题的帖子,我确认我的 URL 不包括任何句点,再次检查我的 IE 设置是否设置为启用集成 Windows 身份验证,还将我的 URL 添加到我的内部网站,但仍然得到弹出窗口。
为了进一步排除故障,我在 IIS 中启用了匿名身份验证,并修改了 web.config 文件,使我能够直接进入该文件,然后添加了 Response。写入(系统。保安。校长。Getcurrent ().ToString ()来尝试查看身份验证中使用了哪个用户。我得到的结果是 IIS APPPOOL myapp,它显然是我的应用程序的 IIS 应用程序池。
我真的很感激任何人可以提供的任何帮助,这样我仍然只使用 Windows 身份验证,但不会得到弹出窗口和 Windows 身份验证是针对实际的 Windows 用户执行的。
谢谢。
进一步故障排除后的附加说明:
只是注意到,当登录失败,Windows 登录提示再次显示,它显示的用户名试图登录为“ SERVERNAME”“ USERNAME”,这使我相信它是试图验证用户对服务器对域。为了证实这一点,我直接在应用服务器上创建了一个本地用户帐户,其用户名和密码与网络域用户相同,并尝试再次登录。结果是我再次收到了登录提示,但是当我这次输入用户名和密码时,我能够成功地登录。网络用户和应用服务器在同一个域上,所以真的不知道为什么 IIS 身份验证指向本地应用服务器帐户,而不是指向域帐户。我意识到这是一个 IIS 问题,所以在 forums.IIS.net 上发布也是如此,但感谢任何建议,任何人可能已经为此故障排除了好几天。