将ActiveDirectoryMembershipProvider与两个域控制器配合使用

问题描述:

我们有一个ASP.NET应用程序在客户站点运行,该客户站点使用ActiveDirectory通过ActiveDirectoryMembershipProvider进行用户登录。他们的主要域控制器今天早上关闭了,为了让所有设置恢复正​​常,客户端想知道我们是否可以与两个域控制器建立冗余连接。即指定主要和备份AD服务器。谷歌搜索无果而终 - 有谁知道这是否可以完成?将ActiveDirectoryMembershipProvider与两个域控制器配合使用

如果ActiveDirectory中无法处理多个域控制器,那么它不会是一个很好的技术。

你只需要确保你的会员的配置,你都指向“域”,而不是“服务器”,然后两个或更多控制器添加到您的域名。

一般来说,如果你指的是域“LDAP://服务器/ DC =域,DC = COM”,那么你应该能够删除“服务器”部分,仅仅是指“LDAP:// DC =域,DC = com的”

下面的代码项目给予的东西,你可以在Active Directory中从C#做一个长长的清单:http://www.codeproject.com/KB/system/everythingInAD.aspx#7

它可以完成,它只需要一些工作。

您需要创建一个继承ActiveDirectoryMemberhsipProvider的类,并使用它来代替您的提供者。这样你就可以保持大部分的功能。然后设置一种方法来指定两个connectionStringName属性,一个用于主要,另一个用于辅助。您还需要创建代码以便从配置中读取信息,因为您正在更改它。然后,只需重写主要关闭并切换到辅助节点时需要捕获的方法。这将是最可重复使用的方式。

可能还有其他的方式来做到这一点,但它可能会是hacky并且不是很可重用。就像在每个请求之前测试连接,然后以这种方式设置连接字符串一样。

根据班上的MSDN documentation,这可能是唯一的方法。他们不提供内部功能。

+0

我害怕的是,虽然我以前子类ADMP,它WASN太糟糕了。我很好奇,如果有指向域而不是服务器的LDAP字符串的外观的答案。 – 2008-09-10 16:06:13

+1

我见过的每个LDAP连接字符串都包含服务器,那么您将提供要进行身份验证的域。 – 2008-09-10 17:08:40