実は、ActiveDirectry を扱うために DirectoryEntry, DirectorySearch なんかを駆使しないと駄目なのかなぁ、と思ったのですが、単純に現在ログインしているユーザーに関してならば、ローカルの Windows ユーザーをチェックすれば OK でした、というオチです。
# ActiveDirecotry 特有のプロパティを調べる場合は、DirectoryEntry などが必要になるのですが、 カレントユーザーのグループ名の列記だけならば、結構簡単に、という話です。
ユーザ名やドメイン名は、Environment のスタティックプロパティを利用します。
グループ名の一覧を取得する時は、NTAccount クラスにキャストして使います。
という訳で簡単にソースをば。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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 ; } |