1

次を使用して、ADAM サーバーからユーザーのグループを取得しようとしています。

PrincipalContext yourDomain = new PrincipalContext(ContextType.ApplicationDirectory,
                                                   principalContextName,
                                                   principalContextContainer,
                                                   ContextOptions.ServerBind | ContextOptions.SimpleBind,
                                                   principalContextUserName,
                                                   principalContextPassword);
UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain,
                                                   IdentityType.UserPrincipalName,
                                                   userName);
PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();

そして、「サーバーが動作していません」というエラーが発生し続けます。

私はついに自分の問題を理解しましたが、それを修正する方法がわかりません。

問題は、2 つの ADAM サーバーがファイアウォールと NLB の背後にあり、どちらも adam.company.local という名前で応答し、その名前の nslookup で 100.10.130.1 を応答するということです。

100.10.130.1 と adam.company.local という名前に ping を実行することもできるので、問題はネットワークではありませんが、問題はあります。

WireShark を使用すると、ある時点でサーバーが自分の名前を返し、私の呼び出しがその名前を呼び出そうとすることがわかりました。もちろん、ファイアウォールはそれらをブロックし、例外が発生します。

これを確認するために、ホスト ファイルに 2 つの行を作成し、両方のサーバー名を 100.10.130.1 にすると、問題はなくなり、すべてのグループを簡単に取得できました。

何故ですか?de connection が、到達できないマシンに変更されるのはなぜですか?

最後の質問は、パブリケーション マシンではホスト ファイルにこれらの行を作成できないため、どうすればそれを防ぐことができるかということです。

4

0 に答える 0