1

我有一个我正在为我们公司的 Intranet 开发的 aspx 网站。我最近添加了一些安全页面,这些页面要求用户成为 Active Directory 中特定组的成员才能查看。我们正在为站点使用 Windows 身份验证(我在 .config 中有 Windows 身份验证)。在 IIS 中启用了 Windows 身份验证,并且禁用了匿名身份验证。我还在项目属性中启用了 NTLM 身份验证。

据我所知,安全工作按预期工作。只有具有正确凭据的用户才能访问安全页面(我通过控制器操作上的 [Authenticate Roles = "bla"] 检查来保护它们)。

我遇到的问题并不是真正的问题,而是更多的烦恼。每当用户登录到站点时,系统都会提示他们登录对话框。我不想要这个。我希望该站点从 Windows 登录中获取他们的凭据,并使用它来确定他们的访问权限。我的印象是 Windows 身份验证自己处理了这个问题,但似乎我错了。

基本上,我怎样才能摆脱登录提示并让 Windows 身份验证自动处理所有相同的功能?

是否有一些我可能需要更改的服务器设置?它可能是我的代码中的东西吗?

如果可能的话,我希望它至少可以与 IE、Firefox 和 Chrome 一起使用。

***2012 年 7 月 23 日更新

感谢大家的建议,不幸的是我还没有让它正常工作。我注意到的一些事情可能有助于提供更多细节

  • 我相当肯定 Intranet 站点在我们的“受信任”站点列表中(我们的网络管理员说它是)。

  • 我只使用 NTLM 身份验证和 NTLM 身份验证。如果我删除 NTLM 身份验证并启用 Negotiate: Kerberos 身份验证,我只会收到 401 - Unauthorized 错误。我可以通过禁用内核模式身份验证来解决这个问题,但是我仍然会收到凭据提示(我不想要)。

  • 如果我在 IE > Internet 选项 > 高级 > 安全中选中“启用集成 Windows 身份验证*”,它会提示我输入凭据,但输入我的凭据不再有效。它会问我三遍,然后将我带到 401 错误页面。

  • IE9 只询问我的密码并提取我的用户名(好)。Chrome 和 Firefox 提示我输入用户名和密码。

4

4 回答 4

1

查看 Internet Explorer / 工具 / 选项 / 高级。

“安全”下有一个“启用集成 Windows 身份验证”复选框。

这是检查吗?

默认情况下已选中,管理员可以使用 GPO 进行设置:

http://www.windowsecurity.com/articles/configuring-advanced-ie-settings-using-group-policy.html

于 2012-07-13T15:24:12.703 回答
0

IE 中有一个设置允许这种自动传递发生。您的系统管理员可以创建组策略并将其推送给所有用户。

我也成功地将 Firefox 配置为在同一问题上运行,但这将涉及修改单个用户的 FF 配置。

于 2012-07-13T15:24:30.880 回答
0

这一行应该在你的 web.config<system.web>元素内。

<authentication mode="Windows" />

于 2012-07-13T16:08:36.530 回答
0

只是想我会提供有关实际解决问题的更新。

我尝试了你们为 Internet Explorer 设置提供的所有很棒的建议,但最终,它变成了服务器设置。

将站点的提供者顺序翻转为 NTLM,按该顺序协商解决了问题。

于 2012-07-24T20:09:23.723 回答