実は、ActiveDirectry を扱うために DirectoryEntry, DirectorySearch なんかを駆使しないと駄目なのかなぁ、と思ったのですが、単純に現在ログインしているユーザーに関してならば、ローカルの Windows ユーザーをチェックすれば OK でした、というオチです。
# ActiveDirecotry 特有のプロパティを調べる場合は、DirectoryEntry などが必要になるのですが、 カレントユーザーのグループ名の列記だけならば、結構簡単に、という話です。
ユーザ名やドメイン名は、Environment のスタティックプロパティを利用します。
グループ名の一覧を取得する時は、NTAccount クラスにキャストして使います。
という訳で簡単にソースをば。
private void Form1_Load(object sender, EventArgs e)
{
string username = Environment.UserName;
string domainname = Environment.UserDomainName;
labelUser.Text = username;
labelDomain.Text = domainname;
// using System.Security.Principal;
WindowsIdentity user =
WindowsIdentity.GetCurrent();
// 属しているグループ名一覧を取得
listBox1.Items.Clear();
foreach (var group in user.Groups)
{
// NTアカウントに変換
NTAccount ac =
(NTAccount)group.Translate(typeof(NTAccount));
listBox1.Items.Add(ac.Value);
}
listBox1.Sorted = true;
}
