检查Active Directory中是否存在用户

时间:2010-06-08 22:37:35

标签: asp.net active-directory

我需要检查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();
         }
     }
}

1 个答案:

答案 0 :(得分:0)

嗯,你可以采用的唯一真正的方法就是让“PrincipalContext”在某个地方构建一次并缓存以备将来使用,这样你就不必一遍又一遍地重新创建该上下文,每次你打电话给那个功能。

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