2010-07-06 136 views
7

考虑用于Intranet的站点,该站点也应可从Internet访问。在Intranet上,您希望使用Windows身份验证,并在Internet上希望用户使用表单身份验证访问网站。将Windows身份验证与表单身份验证混合使用

是否有可能与这两者建立混合模式?我只想验证用户是否使用其中任何一个登录而不使用两个站点。

回答

1

嘿,我已经看到这个页面谈论与IIS7的2级认证:IIS 7.0 Two-Level Authentication with Forms Authentication and Windows Authentication,而这与你具有相同的要求:IIS混合模式认证的ASP.NET应用程序 - http://beaucrawford.net/post/IIS-ldquo3bmixed-moderdquo3b-authentication-for-ASPNET-Application.aspx,但我没有尝试任何,也许它适合你?我想你只需要根据你的需求来调整它。

+0

链接的解决方案似乎很彻底,但确实需要完全信任或gacced提供程序集。 – 2010-07-18 00:51:58

2

我知道没有建立这样做的方式。但是您可以使用简单的解决方法:

选择表单身份验证作为您的主要身份验证并将其映射到Windows身份验证。您可以在应用程序AuthenticateRequest中使用global.asax或特殊的http处理程序或模块来执行此操作。在此请求中标识您的Intranet用户,并以编程方式使用FormsAuthentication.SetAuthCookie设置表单身份验证Cookie。

我实际上将它用于混合模式表单和IP-Number认证,但我认为它也适用于窗体和Windows认证。

顺便说一句:也许混合模式形式和IP号码身份验证是您的问题的第二个解决方案。如果您的服务器是DMZ的一部分,您可以通过IP号码子网检测您的Intranet用户。