代码之家  ›  专栏  ›  技术社区  ›  Eric Pohl

将ActiveDirectoryMembershipProvider与两个域控制器一起使用

  •  3
  • Eric Pohl  · 技术社区  · 16 年前

    我们有一个ASP.NET应用程序在一个客户站点上运行,该客户站点使用ActiveDirectory通过ActiveDirectoryMembershipProvider进行用户登录。今天早上,我们指向的主域控制器出现故障,在备份所有内容时,客户机想知道我们是否可以与两个域控制器建立冗余连接,即指定主服务器和备份AD服务器。谷歌的搜索结果是徒劳的——有人知道这是否可以做到吗?

    2 回复  |  直到 13 年前
        1
  •  2
  •   bkaid    13 年前

    如果ActiveDirectory不能处理多个域控制器,那么它就不是一种很好的技术。

    您只需要确保在您的成员资格配置中指向的是“域”而不是“服务器”,然后向您的域添加两个或更多控制器。

    通常,如果您将该域称为“ldap://server/dc=domain,dc=com”,那么您应该能够删除“server”部分,并只引用“ldap://dc=domain,dc=com”。

    下面的代码项目列出了您可以从C在Active Directory中执行的操作: http://www.codeproject.com/KB/system/everythingInAD.aspx#7

        2
  •  0
  •   Dale Ragan    16 年前

    这是可以做到的,只是需要一些工作。

    您需要创建一个从ActiveDirectoryMembershipprovider继承的类,并使用它来替代您的提供程序。这样就可以维护大部分功能。然后设置一种方法来指定两个ConnectionStringName属性,一个用于主属性,一个用于辅助属性。您还需要创建代码来从配置中读取信息,因为您正在更改它。然后,只需重写当主服务器关闭时需要捕获的方法,然后切换到辅助服务器。这将是最可重用的方法。

    可能还有其他的方法,但它可能会被黑客攻击,而且不太可重用。就像在每个请求之前测试连接,然后以这种方式设置连接字符串。

    基于 MSDN documentation 在课堂上,这可能是唯一的方法。它们不提供内部功能。