我有一个Windows 2003 Server的IIS 7下运行的.NET 3.5应用程序,由于继续提示输入登录名,无法使集成的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添加到了我的Intranet网站,但仍然弹出。
为了进一步解决该问题,我在IIS中启用了匿名身份验证,并修改了我的web.config文件,然后我将其添加到其中,然后添加了Response.Write(System.Security.Principal.WindowsIdentifity.getcurrent()。user.name.toString() )以尝试查看身份验证中正在使用的用户。我得到的结果是IIS APPPOOL \ myapp,这显然是我的应用程序的IIS应用程序池。
我真的很感激任何人都可以提供的帮助,以便我仍然仅使用Windows身份验证,但是不会弹出窗口,并且Windows身份验证是针对实际Windows用户执行的。
谢谢。
进一步排除故障后的附加说明:
刚刚注意到,当登录失败并再次显示Windows登录提示时,它显示尝试登录为“ SERVERNAME” \“ USERNAME”的用户名,这使我认为它正在尝试针对服务器验证用户名。域。为了确认这一点,我直接在应用服务器上使用与网络域用户相同的用户名和密码创建了一个本地用户帐户,然后尝试再次登录。结果是我再次收到登录提示,但是这次输入用户名和密码时,我能够成功登录。网络用户和应用程序服务器位于同一域上,因此真的不确定为什么IIS身份验证指向本地应用程序服务器帐户而不是域帐户。我意识到这是一个IIS问题,因此请在forums.iis上发布。
<authentication mode="Windows" />
希望那只是您输入问题的错字?