- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActiveDirectoryのユーザ情報取得方法)
ActiveDirectoryのユーザ情報取得方法
このQ&Aのポイント
- ActiveDirectoryからユーザの所属部署情報を取得する方法について説明します。
- クライアントの所属部署に応じて、表示させるページを変えるために、統合Windows認証を利用してアクセストークンを取得し、ActiveDirectoryに問い合わせます。
- しかし、実行中に不明なエラーが発生し、ActiveDirectoryへのアクセスができないため、原因を推測しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#259269
回答No.1
DirectorySearcher 使おうとすると AD 内を検索することになるのでそれなりの権限ユーザでないとできません。エラーは権限が足りないことを示していると思います。 偽装するユーザをそれなりの権限ユーザで Web.Config に指定すれば OK かと。 忘れかけていて、試してませんので間違ってるかもしれませんが、ユーザオブジェクトの格納場所が決まっているなら、以下のような感じで Dim path As String = "LDAP=://LDAPserver_name/CN=****,CN=Users, DC=XXX, DC=XXX, DC=jp" Dim userEntry As DirectoryEntry = New DirectoryEntry(path) Dim strdata As String = userEntry.Properties("department").Value いけそうな気がしますが(****はユーザ名)、探す必要があるんでしょうか。
その他の回答 (1)
noname#259269
回答No.2
No.1です。 >いけそうな気がしますが(****はユーザ名)、探す必要があるんでしょうか。 これ↑ name と cn が同じ前提の場合ですね。すみません。
質問者
補足
edp3142さん、 お世話になります。前の補足で述べましたように、LDAPの問合せにおけるフィルターのかけ方などを調べておりまして返信が遅くなってしまいまして申し訳ありません。 edp3142さんの上記回答において、「name と cn が同じ前提の場合ですね。」とありますが、お手数ですが、もう少し詳細にご説明をいただけますと有難く存じます。いろいろ調べましたがわかりませんでした。 よろしくお願い申し上げます。
お礼
edp3142さん、 お忙しい中、ご回答ありがとうございます。 非常に有益な情報となりました。 今後とも一層、ASP.NETを勉強していこうと思います。 ありがとうございました。
補足
edp3142さん、ご回答ありがとうございます。助かります。 1.偽装するユーザをそれなりの権限ユーザで偽装しないと、AD内を検索できないということ、了解いたしました。ユーザがクライアントPCからイントラネットのドメインに入ったときに入力したアカウント情報で、ASP.NET偽装を行うことにより、AD内を検索できると思っておりました。貴重なご指摘いただきありがとうございます。 2.スクリプトにおける、LDAP URLの指定に関し、直接、CNに、User.Identity.nameにより取得したユーザ名を指定すればよい、とのご指摘かと思います。この点、Filterのかけ方など、私が理解していない部分がありますので、もう少し、調べさせていただきたいと思います。 貴重なコメントありがとうございます。