Asp.Net でユーザーの AD ユーザー グループを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/90572

  •  01-07-2019
  •  | 
  •  

質問

ユーザーが所属するグループのリストを取得できる必要がありますが、次のプロパティの 1 つ/一部/すべてを表示する必要があります。

  • 識別名
  • 名前
  • CN
  • サマックカウント名

私が現在持っているものは、ある種の名前を返しますが、上記の名前のどれも返しません(名前は似ているように見えますが、すべてが正しく一致するわけではありません。これが私が使用しているものです:

ArrayList groups = new ArrayList();
foreach (System.Security.Principal.IdentityReference group in System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups)
    groups.Add(group.Translate(typeof(System.Security.Principal.NTAccount)));

先ほども述べたように、上記は機能しますが、プログラムに必要な適切な名前 (上で指定したもの) は取得できません。ドメイン内のすべてのグループを呼び出したときに取得したリストと一致させるには、これが必要です。

DirectoryEntry dirEnt = new DirectoryEntry("LDAP://my_domain_controller");
DirectorySearcher srch = new DirectorySearcher(dirEnt);
srch.Filter = "(objectClass=Group)";
var results = srch.FindAll();
役に立ちましたか?

解決

グループもプロパティを持つ個別の AD エントリであるため、これを 1 つのステップで行うことはできません。

したがって、最初の実行では、ユーザーが属しているグループ名を取得し、それらを何らかのリストに入力する必要があります。

2 番目のステップでは、すべてのグループ名を調べて 1 つずつクエリを実行して、グループ プロパティ (識別名など) を取得し、それを何らかの構造に収集します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top