【发布时间】:2011-03-12 05:21:00
【问题描述】:
考虑一个用于 Intranet 的站点,该站点也应该可以从 Internet 访问。在 Intranet 上您希望使用 Windows 身份验证,在 Internet 上您希望用户使用表单身份验证访问网站。
是否可以设置这两者的混合模式?我只想验证用户是否使用其中任何一个登录而不使用两个站点。
【问题讨论】:
标签: asp.net asp.net-membership
考虑一个用于 Intranet 的站点,该站点也应该可以从 Internet 访问。在 Intranet 上您希望使用 Windows 身份验证,在 Internet 上您希望用户使用表单身份验证访问网站。
是否可以设置这两者的混合模式?我只想验证用户是否使用其中任何一个登录而不使用两个站点。
【问题讨论】:
标签: asp.net asp.net-membership
您可能想查看类似的问题:mixed mode authentication against AD and fallback to the database if it fail with Membership providers
在答案中,我提出了一个使用外观的解决方案。我利用这种方法在多个域、aspnet sql 提供程序和旧式身份验证数据库上集成了 AD,并取得了可观的成功。
【讨论】:
我不知道这样做的内置方式。但是您可以使用一个简单的解决方法:
选择表单身份验证作为您的主要身份验证并将 Windows 身份验证映射到它。您可以使用 global.asax 或特殊的 http 处理程序或模块在应用程序 AuthenticateRequest 中执行此操作。在此请求中识别您的 Intranet 用户,并以编程方式使用 FormsAuthentication.SetAuthCookie 设置表单身份验证 cookie。
我实际上将它用于混合模式表单和 IP 号码身份验证,但我认为它也适用于表单和 Windows 身份验证。
顺便说一句:也许混合模式表单和 IP 号码身份验证是解决您问题的第二种解决方案。如果您的服务器是 DMZ 的一部分,您可以通过 IP 号子网检测您的 Intranet 用户。
【讨论】:
嘿,我看到这个页面谈论 IIS7 的 2 级身份验证:IIS 7.0 Two-Level Authentication with Forms Authentication and Windows Authentication,而另一个与你有相同要求的页面:ASP.NET 应用程序的 IIS 混合模式身份验证 -http://beaucrawford.net/post/IIS-ldquo3bmixed-moderdquo3b-authentication-for-ASPNET-Application.aspx,但我没有什么都不要尝试,也许它对你有用?我想你只需要根据你的需要调整它。
【讨论】: