我一直无法让 ASP.NET 应用程序自动将用户登录到我正在构建的 Intranet 站点。无论是谷歌搜索还是我进行的实验,IE7 总是会显示一个登录框。

我已经在 Web.config 中设置了 Windows 身份验证模式,禁用了匿名访问并在 IIS 中配置了正确的默认域,但它仍然要求用户登录,更烦人的是,用户还需要提供域(域\auser),这给非技术访问者带来了问题。感谢 Zeus 的密码记忆功能。

我不是网络管理员,因此 Active Directory 的某些设置可能不正确,或者可能只是我遗漏了一些非常简单的内容。请注意,我不想模拟用户,我只需要知道 IPrincipal.Name 属性与用户数据库中的有效记录匹配,从而向我的应用程序验证用户身份。

为此,拥有一份 AD、ASP.NET 和 IIS 以这种方式协同工作的所有配置要求的清单作为调试参考并希望减少一些用户摩擦将非常有用。

有帮助吗?

解决方案

听起来您已经涵盖了所有服务器端基础 - 也许这是客户端问题?我假设您的用户在 IE7 中启用了集成身份验证?(工具 -> Internet 选项 -> 高级 -> 安全)。默认情况下启用此功能。

另外,您的站点是否被 IE7 正确识别为位于本地 Intranet 区域?IE7 默认只允许在该区域自动登录,因此如果 IE 认为您的站点位于互联网上,则会提示用户。我相信使用带点的主机名会导致 IE 将该站点放入 Internet 区域。

其他提示

  1. 打开 Active Directory Users and Computers MMC 卡入式

  2. 扩张 computers 部分来自 TreeView (左边)

  3. 检查计算机是否在您的域中注册。

此外,您必须使用该计算机上的域帐户登录,否则将显示身份验证框。

在 IIS 中,启用匿名访问并允许 web.config 处理用户身份验证。

如果这不起作用,请发送您的 web.config 示例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top