我正在开发一个C#应用程序,该应用程序需要从Active Directory假脱机用户列表,已创建具有只读权限的AD凭据,但该组织有一个不提供第三方用户凭据的策略
根据Nate's answer here判断,可以使用当前登录的用户查询AD。我想知道的是我是否必须在AppPool Identity中预先配置它,或者在我的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;
任何答案都会非常感激,因为我必须在非常短的时间内到客户办公室。