Проверьте, существует ли пользователь в Active Directory - PullRequest
3 голосов
/ 09 июня 2010

Мне нужно проверить, существует ли пользователь в 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 голосов
/ 09 июня 2010

Ну, единственный реальный подход, который вы могли бы сделать, чтобы сделать это быстрее, - это создать "PrincipalContext" один раз где-нибудь и кэшировать для будущего использования, чтобы вам не приходилось заново создавать этот контекст снова и сновакаждый раз, когда вы вызываете эту функцию.

Кроме этого - нет, я не вижу большой возможности для улучшения прямо здесь и сейчас.Что это за приложение?Веб-приложения ASP.NET или Winforms, WPF, Silverlight ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...