【发布时间】:2013-05-06 05:52:35
【问题描述】:
我需要为同时在 Intranet 和 Internet 上使用的应用程序实施类似 Single Sign On 的功能。 现在,该应用程序使用自己的表来存储用户信息,并且比公司的 AD 中的用户更多。示例合同工/第 3 方供应商等,因此许多不属于域的 Active Directory 的用户都列在用户表中。
应用程序有点旧,目前它使用表单来验证用户。
但奇怪的是,web.config 文件中的身份验证模式有以下身份验证条目。 <authentication mode="None" />
我在 web.config 中将身份验证模式更改为 Windows,在 IIS 6 中选择了集成 Windows 身份验证并取消选中匿名访问。
现在我有以下两种情况。
#1 Intranet
用户使用存储在 AD 中的系统凭据登录系统
现在,如果用户点击 Web 应用程序的链接,他应该已经登录。
我已经通过在 login.aspx 的页面加载中使用 Page.User.Identity.name 来实现这部分,以检查用户是否存在于数据库中。
#2 Internet
如果我从外部网络检查它,浏览器会提示我输入凭据。
要求是不应提示用户输入凭据,而是应显示当前登录页面
我每次都用谷歌搜索并最终访问 stackoverflow。遗憾的是,这些解决方案对我来说并不奏效。
我偶然发现了 Scott Enabling Windows Authentication within an Intranet ASP.NET Web application 的这篇文章,如果您查看 cmets,Scott 指的是评论者 ripster 使用解决方案,以防应用程序从 Internet 和 Intranet 访问。虽然它对我没有效果,或者可能是我做得不好。
【问题讨论】:
标签: asp.net authentication windows-authentication