2010-06-08 52 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?

相關問題