2010-06-08 131 views
3

我需要检查用户是否存在于AD中,如果有,请检索一些用户信息。我已经能够做到这一点,如下所示。但是,它非常缓慢。有什么办法可以更快地做到这一点?检查用户是否存在于Active Directory中

谢谢!

using System; 
using System.DirectoryServices; 
using System.DirectoryServices.AccountManagement; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main() 
     { 
      Console.WriteLine("Enter AD account name..."); 
      string strADLoginName = Console.ReadLine(); 

      using(PrincipalContext context = new PrincipalContext(ContextType.Domain,"DEVMC")) 
      { 
       using (UserPrincipal user = UserPrincipal.FindByIdentity(context, strADLoginName)) 
       { 
        bool userExists = (user != null); 
        if (userExists) 
        { 
         Console.WriteLine("User exists"); 
         Console.WriteLine(user.EmailAddress); 
        } 
        else 
        { 
         Console.WriteLine("User doesn't exist"); 
        } 
       } 


      } 
      Console.ReadKey(); 
     } 
    } 
} 

回答

0

那么,唯一真正的方法,你可以TAK,使这个速度将是有“PrincipalContext”一次构建地方并缓存以备将来使用,所以你不必重新创建上下文一次又一次,每次你调用这个函数。

除此之外 - 不,我现在看不到有太多的改进空间。这是什么类型的应用程序? ASP.NET Web应用程序,还是Winforms,WPF,Silverlight?

相关问题