- PR -

C#で自分のアカウントが属するグループ名、SIDの取得

1
投稿者投稿内容
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-06-26 18:42
ドメインにログインしている環境で.NET C#を使って、
実行ユーザーのSIDや所属グループの名前とSIDを
ActiveDirectoryから取得したいのです。

実行ユーザーのSIDはC#から記事
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=17430&forum=7&2
などを参考に取得できましたが、

以下の紹介記事にあるような
http://www.atmarkit.co.jp/fwin2k/tutor/winsecurity02/winsecurity02_02.html

whoamiコマンドを実行して得られるのと同様の
属するグループ名とSIDをC#で取得する方法がわからずに困っております。
【例】
ドメイン名\dl0123456 S-1-5-21-505372016-1359435734-311576647-18456

数日間格闘しておりますが、一体どこのプロパティにグループのSIDがあるのか
わからず、ご教授いただけたらと思います。
よろしくお願いいたします。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-06-26 18:56
ユーザ名やドメイン名については、Environment.UserName と Environment.UserDomainName で取得できますね。

あとはそれを整形してあげればいいのではないかと。
mitchin
会議室デビュー日: 2003/05/28
投稿数: 16
投稿日時: 2008-06-26 23:53
ユーザの情報は DirectoryEntry.Properties.Item("プロパティ名").Value で取得します。

SID のプロパティ名は objectSid でデータ型は System.Byte[]
所属グループのプロパティ名は memberOf でデータ型は System.Object[]

所属グループは Object の配列です。各要素の中身はグループ名の LDAPパスなので
その文字列からグループ名を抜き出せばいいと思います。

SID についてはグループやコンピュータもユーザと同様に(アカウントなので)取得できます。
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-07-02 09:54
>rainさま、mitchinさま、

レスありがとうございました。
ご意見参考にしまして、SID値を取得することができました。
そのうち、要点をまとめて掲載できればと思っております。

1

スキルアップ/キャリアアップ(JOB@IT)