9

ユーザーが所属しているグループの一覧を取得したい。

これは私のコードです:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.ac.uk",   "DC=mydomain,DC=AC,DC=UK", "user", "password");

UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, "MyUser");

PrincipalSearchResult<Principal> results = user.GetGroups();

foreach(Principal p in results)
{
   Response.Write(p.Name);
}

実行すると、行で次のエラーが発生しましたResponse.Write(p.Name);

System.Runtime.InteropServices.COMException: 指定されたディレクトリ サービスの属性または値が存在しません。

結果のカウントを確認したところ、9 が返され、最初のグループはDomainUsersでした。

リスト内の 9 つのグループすべてを反復するにはどうすればよいですか? ありがとう。

以下は、私が取得したユーザーのリストです。

ここに画像の説明を入力

4

2 に答える 2

1

のようなものを試してください

foreach(Principal p in results)
{ 
   if (p is GroupPrincipal) 
      Response.Write(p.DisplayName); 
}

ばかげているように聞こえるかもしれませんが、過去にはうまくいきました。結果は、実際には 1 つのセキュリティ グループと 8 つの「その他の」タイプのグループのみが見つかったように見えます。それらの「他の」グループは、それらの属性を持たない場合があります。

于 2012-09-04T22:06:42.877 に答える