Аутентификация в Active Directory с использованием C # - PullRequest
1 голос
/ 12 января 2010

У меня просто имя пользователя и нет пароля. Я просто хочу проверить, существует ли это имя пользователя в Active Directory . Как мне это сделать?

Ответы [ 3 ]

2 голосов
/ 12 января 2010

Если вы используете .NET 3.5, вы можете использовать функции System.DirectoryServices.AccountManagement. Ваш код будет выглядеть примерно так:

// create a "principal context" - e.g. your domain (could be machine, too)
PrincipalContext pc = new PrincipalContext(ContextType.Domain, "YOURDOMAIN");

UserPrincipal user = UserPrincipal.FindByIdentity(pc, "username");

bool userExists = (user != null);

Это должно сработать; -)

Подробнее о S.DS.AM читайте в этой замечательной статье MSDN:

Управление принципами безопасности каталогов в .NET Framework 3.5

1 голос
/ 12 января 2010

Попробуйте это:

string strDomain = DOMAINNAME;
string strUserId = USERNAME;

string strPath = "LDAP://DC=" + strDomain.Trim() + ",DC=com";

DirectoryEntry de = new DirectoryEntry(strPath);
DirectorySearcher deSearch = new DirectorySearcher(de);

deSearch.Filter = "(&(objectClass=user)(SAMAccountName=" + strUserId.Trim() + "))";

SearchResult results = deSearch.FindOne();
if ((results == null))
{
    //No User Found
}
else
{
   //User Found
}
0 голосов
/ 12 января 2010

Вы можете использовать класс DirectoryEntry для таких задач. См. Exists -метод здесь: http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.exists.aspx

...