我需要检查AD中是否存在用户,如果存在,则检索一些用户信息。我已经能够做到这一点,如下所示。但是,它很慢。有没有办法更快地做到这一点?
谢谢!
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 :(得分:0)
嗯,你可以采用的唯一真正的方法就是让“PrincipalContext”在某个地方构建一次并缓存以备将来使用,这样你就不必一遍又一遍地重新创建该上下文,每次你打电话给那个功能。
除此之外 - 不,我在这里和现在看不到太大的改进空间。这是什么类型的应用程序? ASP.NET Web应用程序,或Winforms,WPF,Silverlight ??