Рейтинг:
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.