ユーザーが属するグループのリストを取得できるようにする必要がありますが、次のプロパティの 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();