cesare.cogliandro@teletu.it Ответов: 1

Проверьте учетные данные пользователя в active directory


Привет, ребята. У меня есть небольшая проблема: я бы проверил учетные данные пользователя с помощью active directory на компьютере, на котором пользователь не может получить интерактивный доступ.
То есть я не могу войти на данный компьютер, но мне нужно вставить свои учетные данные в программу, чтобы выполнить некоторые операции, запрещенные для текущего пользователя, вошедшего в систему.
Есть ли способ проверить учетные данные пользователя в Active Directory независимо от компьютера, на котором я их ввел?
Заранее спасибо

Чезаре Может Привести К Этому?


Что я уже пробовал:

Я попытался использовать функцию "DirectorySearcher", но если пользователь не может войти в систему интерактивно на ПК, результат всегда будет ложным.

Alek Massey

Слово, которое вам нужно, - это олицетворение.

Олицетворение пользователя в .NET[^]

1 Ответов

Рейтинг:
1

W.G.C.

Вы пробовали использовать систему?Каталог.Управление учетными записями, как показано ниже? Если учетные данные действительны, ValidateCredentials должен возвращать значение True.

Dim IsValid As Boolean=False
Dim DomainContext As System.DirectoryServices.AccountManagement.PrincipalContext

' Get a DomainContext object for the domain in question'
DomainContext = New DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Domain, "DomainName", "DC=Domain,DC=Com", "Username", "Password")

' Validate credentials'
IsValid=DomainContext.ValidateCredentials("NameToCheck", "PasswordToCheck")


cesare.cogliandro@teletu.it

Я пытался использовать эту функцию, но результат всегда один и тот же: если пользователь не может войти на компьютер, запрашивающий проверку, ответ всегда ложен. Пример ситуации: пользователь "А" вошел в систему на ПК, запускает программное обеспечение, которое требует аутентификации, и аутентификация получается из active directory.
Если другой пользователь "Б" должен выполнить некоторые задачи в этом приложении на этой машине (но не может войти в систему с этого компьютера), то приложение (а не компьютер) должно иметь возможность предоставить доступ со своими учетными данными к задачам, разрешенным этому пользователю.
У нас есть два уровня аутентификации: первый на ПК, второй на моем программном обеспечении, и эта вторая аутентификация должна быть возможна независимо от того, может ли пользователь войти в компьютер или нет.
Короче говоря, я нашел функцию, которая запрашивает у active directory, действительны ли несколько учетных данных (имя пользователя и пароль, очевидно) независимо от контекста ПК, из которого начинается запрос.
Заранее спасибо.

W.G.C.

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