代码之家  ›  专栏  ›  技术社区  ›  Filip Ekberg

混合Windows身份验证和窗体身份验证

  •  7
  • Filip Ekberg  · 技术社区  · 14 年前

    考虑一个用于内部网的站点,该站点也应该可以从internet访问。在intranet上,您希望使用Windows身份验证;在internet上,您希望用户使用窗体身份验证访问站点。

    有没有可能将这两种模式设置为混合模式?我只想验证用户是否在不使用两个站点的情况下使用其中任何一个站点登录。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Community Lee    7 年前

    您可能需要看一个类似的问题: mixed mode authentication against AD and fallback to the database if it fail with Membership providers

    在回答中,我提出了一个使用门面的解决方案。我利用这种方法在多个域、aspnet sql provider和遗留身份验证数据库上集成了AD,取得了显著的成功。

        2
  •  2
  •   Dirk Brockhaus    14 年前

    我知道这样做是不可能的。但您可以使用一个简单的解决方法:

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

    实际上,我将它用于混合模式窗体和IP号身份验证,但我认为它也适用于窗体和windows身份验证。

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

        3
  •  1
  •   Richard    14 年前

    嗨,我看到这个页面说的是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 但我没试过,也许对你有用?我想你只需要根据自己的需要调整一下。