Проверьте, не вошел ли пользователь в домен с помощью System.DirectoryServices.AccountManagemen - PullRequest
1 голос
/ 09 ноября 2010

C # или предложение VB.NET приветствуется.

У меня есть компьютеры, присоединенные к домену.Я пишу настольное приложение, которое запрашивает имя пользователя и пароль для аутентификации пользователя в Active Directory.Иногда пользователь использует это приложение на компьютере, который не присоединен к домену.

Я использую .NET 3.5, System.DirectoryServices и System.DirectoryServices.AccountManagement.Пример кода для аутентификации пользователей:

Private Function ValidateExternalUser(ByVal username As String, ByVal password As String) As Boolean
    Using context As PrincipalContext = New PrincipalContext(ContextType.Domain, "your_domain_here")
        Return context.ValidateCredentials(username, password, ContextOptions.Negotiate)
    End Using
End Function

' from /4097/autentifikatsiya-polzovatelei-domena-s-pomoschy-system-directoryservices

Я хочу знать, как проверить, выполнил ли пользователь вход в систему на компьютере домена, и мне не нужно просить его снова войти в приложение.

Обновление

Если это невозможно сделать с помощью System.DirectoryServices.AccountManagemen, есть ли способ сделать это?Спасибо

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Если машина не подключена к домену, то свойство System.Environment.DomainName будет равно System.Environment.MachineName.

0 голосов
/ 09 ноября 2010

Я проверил System.Security.Principal.WindowsIdentity .GetCurrent.Name, и он дает мне

"домен \ имя пользователя"

С этой информацией и System.Security.Principal.WindowsIdentity.GetCurrent.IsAuthenticated, я думаю, что я получаю то, что хочу.

0 голосов
/ 09 ноября 2010

Я не думаю, что вы можете сделать это с пространством имен S.DS.AM.Знание того, зарегистрирован ли пользователь в домене, должно обрабатываться контроллером домена во время выполнения - S.DS.AM занимается статической информацией (свойствами пользователя), а не динамическими свойствами времени выполнения (кто вошел в систему).).

...