2 つのドメイン コントローラーで ActiveDirectoryMembershipProvider を使用する
-
09-06-2019 - |
質問
ActiveDirectoryMembershipProvider を介したユーザー ログインに ActiveDirectory を使用する ASP.NET アプリケーションを顧客サイトで実行しています。今朝、私たちが指定していたプライマリ ドメイン コントローラーがダウンしました。すべてを元に戻す際に、クライアントは 2 つのドメイン コントローラーに冗長接続できないかと考えていました。つまりプライマリ AD サーバーとバックアップ AD サーバーを指定します。Google 検索は効果がありませんでした。これができるかどうか知っている人はいますか?
解決
ActiveDirectory が複数のドメイン コントローラーを処理できない場合、それはあまり優れたテクノロジとは言えません。
メンバーシップ構成で「サーバー」ではなく「ドメイン」を指していることを確認してから、ドメインに 2 つ以上のコントローラーを追加するだけです。
通常、ドメインを「LDAP://server/DC=domain,DC=com」として参照している場合は、「server」部分を削除して、単に「LDAP://DC=domain,DC」と参照できるはずです。 =コム」
次のコード プロジェクトは、C# から Active Directory で実行できることの長いリストを示しています。 http://www.codeproject.com/KB/system/everythingInAD.aspx#7
他のヒント
少し手間がかかるだけで、それは可能です。
ActiveDirectoryMemberhsipProvider を継承するクラスを作成し、代わりにプロバイダーを使用する必要があります。そうすることで、ほとんどの機能を維持できます。次に、2 つの connectionStringName プロパティ (プライマリ用とセカンダリ用に 1 つ) を指定する方法をセットアップします。構成を変更するので、構成から情報を読み取るコードを作成する必要もあります。次に、プライマリがダウンしたときにキャッチする必要があるメソッドをオーバーライドし、セカンダリに切り替えるだけです。これが最も再利用可能な方法になります。
おそらく他の方法もあるでしょうが、おそらくハック的で再利用性は低いでしょう。各リクエストの前に接続をテストし、そのように接続文字列を設定するようなものです。
に基づく MSDN ドキュメント クラスでは、おそらくこれが唯一の方法でしょう。内部の機能は提供しません。