当前位置:  开发笔记 > 编程语言 > 正文

使用电子邮件ID从Active Directory查找用户名

如何解决《使用电子邮件ID从ActiveDirectory查找用户名》经验,为你挑选了1个好方法。



1> marc_s..:

您不需要枚举所有用户来查找其中一个用户!试试这段代码:

using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "domainname"))
{
    UserPrincipal yourUser = UserPrincipal.FindByIdentity(context, EmailAddress);

    if (yourUser != null)
    {
        user.FirstName = result.GivenName;
        user.LastName = result.Surname;
    }
}

如果这不起作用,或者您需要一次搜索多个条件,则使用PrincipalSearcherQBE(按示例查询)方法 - 搜索您需要的一个用户 - 不要遍历所有用户!

// create your domain context
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "domainname"))
{    
   // define a "query-by-example" principal - 
   UserPrincipal qbeUser = new UserPrincipal(ctx);
   qbeUser.EmailAddress = yourEmailAddress;

   // create your principal searcher passing in the QBE principal    
   PrincipalSearcher srch = new PrincipalSearcher(qbeUser);

   // find all matches
   foreach(var found in srch.FindAll())
   {
       // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
   }
}

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有