使用c#中登录的用户凭据查询Active Directory

时间:2013-09-25 05:42:30

标签: c# asp.net active-directory

我正在开发一个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;

任何答案都会非常感激,因为我必须在非常短的时间内到客户办公室。

0 个答案:

没有答案