我有一个在 Windows Server 2008 R2 上的 IIS7 上运行的 asp.net 网站,我的网站位于网站节点下的默认网站节点下。
在我的网站的身份验证选项卡上,我有:
- Windows 身份验证
- 基本身份验证
- 匿名访问
- 表单身份验证
- ASP.NET 模拟
这些都已启用 - 我自己没有设置这些,团队中的一位开发人员设置了。同一网络上的每个人都可以毫无问题地访问该网站,除了一个在另一个域上的用户 - 不知道它是否受信任。
当其他域上的用户尝试访问该网站时,IE 会显示一个安全对话框,要求输入凭据。我的网站不使用任何 Windows 凭据,因此我实际上不需要知道访问者的 Windows 用户名和密码。IE 显示的对话框不会阻止用户访问该网站,事实上,无论她做什么(输入一些 blah blah 凭据,甚至取消对话框),该网站仍将按预期打开,她将能够使用该网站的不同功能。
我的问题是:我应该使用哪些正确的设置来强制 IE 不显示安全弹出窗口?
答案1
由于取消后她仍然可以查看网站,我敢打赌这是页面上需要身份验证的依赖项之一。它可能是 .css、.js 或广告,或者是她的环境通过代理服务器添加到页面中的某些内容。
你可以通过给她一个只写着“测试”的 test.html 页面来测试这一点。如果她可以在没有提示的情况下查看该页面,那么我的理论是正确的。如果我的理论是正确的,那么查看该页面以找出哪个文件不被允许,并追踪它以找出原因。
由于您只想允许匿名访问,因此您可以删除所有其他形式的身份验证以排除这种情况。但是,我认为情况不止于此。
答案2
(四年后...)
我真的希望你不是还在等待这个问题的答案!但是,对于遇到同样问题的其他读者,这里有一件事需要检查。
在 IIS 服务器上,使用资源管理器找到存储网站文件的 Windows 目录,右键单击,选择“属性”,进入“安全”选项卡,并确保 YOURSERVERNAME\Users 至少具有一些此文件夹的权限。
在我们的案例中,我们发现开发人员可以登录 IIS 网站,但其他一些用户只会看到无用的“Windows 安全”对话框。
我们认为这一定是我们的 web.config 或 IIS 站点上的身份验证方法的问题。
不。
简单来说,我们在 IIS 服务器上创建了一个目录,该目录以某种方式授予该特定服务器上的管理员读写权限,但没有授予普通用户任何权限。
令人沮丧的是,即使到了 2015 年,当出现此类问题时,IIS 7.5 也没有提供某种有用的错误消息。
弹出一个 Windows 安全对话框,当您单击“确定”时它就会重新出现,这根本没有帮助......