3

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

  • 識別名
  • 名前
  • cn
  • samaccountname

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

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();
4

1 に答える 1

3

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

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

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

于 2008-09-18T07:04:48.907 に答える