ユーザーのリストを Active Directory からスプールする必要がある C# アプリケーションに取り組んでいます。読み取り専用権限を持つ AD 資格情報が作成されていますが、組織にはサード パーティのユーザー資格情報を与えないというポリシーがあります。
ここでのネイトの回答から判断すると、現在ログオンしているユーザーで AD にクエリを実行できます。私が知りたいのは、AppPool ID でこれを事前に構成する必要があるか、または以下に示すように web.config で偽装を「true」に設定することで解決しますか?
<identity impersonate="true" lockItem="false"/>
<anonymousIdentification enabled="true"/>
<authentication mode="Windows">
以下は、AD に接続してユーザーのリストを取得するために使用しているコードです。
using (PrincipalContext ctx = new PrincipalContext(contextType, domainName))
{
try
{
// define a "query-by-example" principal - here, we search for all users
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.Name = "*";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher();
srch.QueryFilter = qbeUser;
// find all matches
foreach (UserPrincipal result in srch.FindAll())
{
WindowsUser usr = new WindowsUser(result); // WindowsUser is my own user-defined class
resultSet.Add(usr); // resultSet is a list of WindowsUser
}
}
catch (Exception ex)
{
throw ex;
}
}
return resultSet;
私は非常に短い時間でクライアントのオフィスに行かなければならないので、どんな回答でも大歓迎です.