- PR -

ActiveDirectoryを用いて指定したユーザーのグループを取得したい

1
投稿者投稿内容
kusa
会議室デビュー日: 2004/03/18
投稿数: 5
投稿日時: 2004-03-23 16:00
はじめまして。

現在、C#で開発をしています。
以前にActiveDirectoryを用いない方法を教えていただいたのですが、
グループ以外の情報もほしいのでActiveDirectoryを使用することにしました。

しかしSearchResultのPropertiesでprimarygroupidは取れるのですが
グループ名が取れないようです。
何かいい方法があれば教えていただけますでしょうか。

よろしくお願いします。

**ソースの一部**
DirectoryEntry drEntry = new DirectoryEntry("LDAP://xxx");
DirectorySearcher drSearch = new DirectorySearcher(drEntry);
drSearch.Filter = "(samAccountName=" + System.Environment.UserName + ")";
drSearch.PropertiesToLoad.Add("primarygroupid");
foreach(System.DirectoryServices.SearchResult resEnt in drSearch.FindAll())
{
 MessageBox.Show(this, resEnt.Properties["primarygroupid"][0].ToString());
}
Hasumi
ベテラン
会議室デビュー日: 2002/07/23
投稿数: 78
お住まい・勤務地: 神奈川・東京
投稿日時: 2004-03-23 16:53
Hasumiです。

以下の情報が参考になるかもしれません。
MSDNチュートリアル:アクティブディレクトリオブジェクトの追加

--追記--
こちらのほうがいいかも
[HOWTO]フォーム認証とVisualC#.NETを使用してActiveDirectoryに対する認証を行う方法

Webアプリケーションの記事ですが、ユーザーが所属するグループの一覧を取得する個所があります。

[ メッセージ編集済み 編集者: Hasumi 編集日時 2004-03-23 17:36 ]
kusa
会議室デビュー日: 2004/03/18
投稿数: 5
投稿日時: 2004-03-23 18:55
Hasumiさん、いつもご返答ありがとうございます。

追記でいただいたほうを試してみたのですが
GetGroups()の
SearchResult result = search.FindOne();
で、「指定されたドメインがないか、またはアクセスできません」となります。
指定したpathは上のIsAuthenticated()で取得したpathなので存在はします。

このサンプルと違うのはASP.NETではなくWinアプリというところなんですが。

何かお分かりでしたらご報告いただけると助かります。
kusa
会議室デビュー日: 2004/03/18
投稿数: 5
投稿日時: 2004-03-23 19:11
度々すみません。

DirectorySearcher search = new DirectorySearcher(_path);

というところを

DirectoryEntry entry = new DirectoryEntry(_path);
DirectorySearcher search = new DirectorySearcher(entry);

にしたら取れました。

しかし…
例えば3つのグループに所属している場合
2つしか取れません。
プライマリグループが取れないようです。

プライマリグループを取る方法を
どなたか教えていただけますでしょうか。

よろしくお願いします。
1

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