0

私はこれを正しく機能させようと狂ったように走り回っていますが、まるでそれを拒否しているようです. Web で見つけたすべての例は、このように見えますが、PrincipalContext、UserPrincipal、および GroupPrincipal の宣言方法が異なります。オブジェクトを返す関数によって宣言されるものもあれば、直接それを行うだけのものもあります。私にとって苛立たしいのは、このコードを実行すると、次のようになることです。

PrincipalContext oPrincipalContext = GetPrincipalContext(sDefaultRootOU);
            UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, IdentityType.SamAccountName, sUserName);
            GroupPrincipal oGroupPrincipal = GroupPrincipal.FindByIdentity(oPrincipalContext, sGroupName);

            bool isUserGroupMember = oUserPrincipal.IsMemberOf(oGroupPrincipal);

私が何をしても、問題のユーザーがグループのメンバーである場合でも、isUserGroupMember は常に false として返されます。私が間違っていることについて何か考えはありますか?どんな助けでも大歓迎です。

ありがとう!

更新これはワイルドですが、問題を1つのグループであるドメインユーザーグループに切り分けることができました。これを他の「組み込み」ADグループに対して確認したところ、メンバーシップが正しく表示されました. 何かご意見は?

4

1 に答える 1

0

完全な答えではありませんが、メンバーシップに関係なく、この結果を返すのは「Domain Users」グループだけのようです。すべてのユーザーがデフォルトでそのグループのメンバーであるため、指定されたグループが「Domain Users」の場合、グループを無視する行をそこに書きました

于 2013-07-15T11:59:27.303 に答える