2012-03-14 2 views
0

Как я могу проверить, что текущий пользователь, зарегистрированный на компьютере, является пользователем активного каталога, а также частью приложения?сравнение активного каталога и пользователя db, который в настоящее время вошел в систему?

Я создаю расширение для устаревшего приложения, которое аутентифицируется на основе AD. В базе данных есть ad_user_name, и я хочу сравнить имя ad_user_имя с именем пользователя, фактически содержащимся в активном каталоге.

Если имена пользователей совпадают, то доступ к редактированию доступен. Если пользователи разные, что-то пошло не так, и они не видят ничего.

EDIT: есть вероятность того, что сервер работает только .NET 2,0

ответ

1

Если с помощью .net 3.5 использовать этот код вместо.

Для аутентификации пользователя:

PrincipalContext adContext = new PrincipalContext(ContextType.Domain); 

using (adContext) 
{ 
    return adContext.ValidateCredentials(UserName, Password); 
} 

Если вам нужно найти пользователя R/W атрибуты объекта сделать это:

PrincipalContext context = new PrincipalContext(ContextType.Domain); 
UserPrincipal foundUser = UserPrincipal.FindByIdentity(context, "jdoe"); 

Это использует System.DirectoryServices.AccountManagement пространство имен так что вы» Вам нужно добавить его в свои операторы.

Если вам нужно преобразовать UserPrincipal объекта к объекту DirectoryEntry для работы с унаследованным кодом вы можете сделать это:

DirectoryEntry userDE = (DirectoryEntry)foundUser.GetUnderlyingObject(); 
+0

Как бы один сделать это на сервере 2003 Win с только .NET 2.0? –

+0

akash ты из непала? namaste :) –

+0

Намастер, я из Непалллля ....... Ты был в Непале раньше? –

Смежные вопросы