将 ActiveDirectoryMembershipProvider 与两个域控制器结合使用
-
09-06-2019 - |
题
我们有一个在客户站点上运行的 ASP.NET 应用程序,该应用程序使用 ActiveDirectory 通过 ActiveDirectoryMembershipProvider 进行用户登录。我们指向的他们的主域控制器今天早上出现故障,在重新设置所有内容时,客户想知道我们是否可以与两个域控制器建立冗余连接;IE。指定主用和备用AD服务器。谷歌搜索没有结果 - 有谁知道这是否可以做到?
解决方案
如果 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
其他提示
这是可以做到的,只是需要一些工作。
您将需要创建一个继承 ActiveDirectoryMemberhsipProvider 的类,并使用它来代替您的提供程序。这样您就可以维护大部分功能。然后设置一种方法来指定两个 connectionStringName 属性,一个用于主属性,一个用于辅助属性。您还需要创建代码来从配置中读取信息,因为您正在更改它。然后,只需重写需要在主数据库关闭时捕获并切换到辅助数据库的方法即可。这将是最可重用的方法。
可能还有其他方法可以做到这一点,但它可能会很笨拙并且不太可重用。就像在每个请求之前测试连接然后以这种方式设置连接字符串一样。
基于 MSDN 文档 在课堂上,这可能是唯一的方法。他们不提供内部功能。