トップ回答者
ログインユーザのActiveDirectoryのOU情報取得

質問
-
回答
-
レスが遅くなりました。
> 2.取得したdistinguishedNameからOUを取得
というところは、質問者さんが具体的にどのようにしたのか分かりませんので、それより良い方法かどうかはわかりませんが、自分が知っている例を紹介しておきます。(同じことをしているような気もしますが)
以下の MSDN ライブラリのサンプルコード LdapAuthentication.cs を見てください。
ASP.NET からの Active Directory ドメイン サービス認証
https://msdn.microsoft.com/ja-jp/library/ms180890.aspxその中の IsAuthenticated メソッドで、ドメイン名、ユーザー名、パスワードで検索し、SearchResult.Path プロパティで検索結果のパス(ADsPath・・・DistinguishedName が含まれるはずです)を取得しています。
LDAP ADsPath
https://msdn.microsoft.com/en-us/library/aa746384(v=vs.85).aspx自分の環境(Windows Server 2008 の AD DC。サーバ名は "svr2k8" )で試してみました。「本社」という OU を追加し、それにユーザーを "日本 太郎" という表示名で登録した場合、SearchResult.Path は以下のようになります。
LDAP://svr2k8/CN=日本 太郎,OU=本社,DC=bglb,DC=jp
すべての返信
-
.net active directory ou などをキーワードにググるといろいろヒットすると思いますが、やってみましたか?
例えば下記:
.NETからActive Directoryデータにアクセス ~組織単位(OU)情報の取得と表示~
http://www.slideshare.net/mitchin227/netactive-directory-ouご自分で情報を集めて、ご自分の手を動かしていろいろやってみて、その上で分からない点を質問される方が解決が早いと思います。
- 編集済み SurferOnWww 2015年4月16日 8:25 欠落部分追加
-
補足です。
DirectoryEntryを使い
DirectorySearcherで、
filterを"(&(objectClass=organizationalUnit))"
として、distinguishedNameにてOUをとることはできたような気がします。
(正しい取り方かはわかりませんが。)
ただ、ログインユーザに限定することができていません。
ログインユーザのSIDは
WindowsIdentity.GetCurrent.User
で取得できるようですが、どう使ったらよいのかがわかりません。
- 編集済み kz20140602 2015年4月16日 8:38 追記
-
-
レスが遅くなりました。
> 2.取得したdistinguishedNameからOUを取得
というところは、質問者さんが具体的にどのようにしたのか分かりませんので、それより良い方法かどうかはわかりませんが、自分が知っている例を紹介しておきます。(同じことをしているような気もしますが)
以下の MSDN ライブラリのサンプルコード LdapAuthentication.cs を見てください。
ASP.NET からの Active Directory ドメイン サービス認証
https://msdn.microsoft.com/ja-jp/library/ms180890.aspxその中の IsAuthenticated メソッドで、ドメイン名、ユーザー名、パスワードで検索し、SearchResult.Path プロパティで検索結果のパス(ADsPath・・・DistinguishedName が含まれるはずです)を取得しています。
LDAP ADsPath
https://msdn.microsoft.com/en-us/library/aa746384(v=vs.85).aspx自分の環境(Windows Server 2008 の AD DC。サーバ名は "svr2k8" )で試してみました。「本社」という OU を追加し、それにユーザーを "日本 太郎" という表示名で登録した場合、SearchResult.Path は以下のようになります。
LDAP://svr2k8/CN=日本 太郎,OU=本社,DC=bglb,DC=jp