Проверка данных пользователя и автоматический вход в Windows - PullRequest
2 голосов
/ 04 мая 2011
  1. Как вы выкапываете логин пользователя?
  2. Как проверить, соответствует ли данный пароль тому, который действительно использовался для входа на компьютер с Windows?
  3. Как мы можем выполнить автоматический вход, предоставляя эти проверенные данные, которые вы говорите в определенное время, регулярно проверяя время с помощью таймера?

Возможно ли это в VB.NET?

Спасибо

Ответы [ 3 ]

3 голосов
/ 04 мая 2011

Эта функция аутентифицирует имя пользователя и пароль в активном каталоге. Вам нужно будет импортировать пространство имен System.DirectoryServices. Вам также необходимо указать путь LDAP для домена в переменной «domain», например, «dc = mydomain, dc = com».

Кроме того, взгляните на материал My.User. *.

Private Function Authenticate(userName As String, password As String, domain As String) As           Boolean
    Dim authentic As Boolean = False
    Try
        Dim entry As New DirectoryEntry("LDAP://" & domain, userName, password)
        Dim nativeObject As Object = entry.NativeObject
        authentic = True
    Catch generatedExceptionName As DirectoryServicesCOMException
    End Try
    Return authentic
End Function
0 голосов
/ 28 декабря 2018

Сначала необходимо добавить ссылки:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.DirectoryServices.dll
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.DirectoryServices.AccountManagement.dll

Вам необходимо импортировать:

Imports System.DirectoryServices.AccountManagement

Функция для проверки:

Private Function ValidateUsername(ByVal Domain As String, ByVal Username As String, ByVal Password As String) As Boolean
    Dim context As PrincipalContext = New PrincipalContext(ContextType.Domain, Domain)
    Try
        If context.ValidateCredentials(Username, Password) = True Then
            Return True
        End If
    Catch ex As Exception
        Return False
    End Try
End Function

Функция для установки автологона:

    Public Shared Sub EnableDomainAutologon(ByVal Domain As String, ByVal Username As String, ByVal Password As String)
    Try
        Dim reg As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", True)
        reg.SetValue("AutoAdminLogon", "1", RegistryValueKind.String)
        reg.SetValue("DefaultUserName", Username, RegistryValueKind.String)
        reg.SetValue("DefaultPassword", Password, RegistryValueKind.String)
        reg.SetValue("DefaultDomainName", Domain, RegistryValueKind.String)
        reg.Close()
        MsgBox("The autologon feature has been enabled!", MsgBoxStyle.Information, "Autologon Enabled")
    Catch ex As Exception
        MsgBox(ex.ToString, MsgBoxStyle.Critical, "Error")
    End Try
End Sub

Для настройки реестра вам нужны права администратора, поэтому вы должны установить уровень «requireAdministrator» в app.manifest:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

Функция для проверкиимя пользователя и пароль могут занять некоторое время.

0 голосов
/ 04 мая 2011

Звучит так, как будто это возможно с использованием аутентификации Windows или аналогичной. Проверка обычно выполняется в Active Directory.

Вы также можете автоматически регистрировать пользователей, использующих его, при условии, что они вошли в Windows и (я полагаю) используете сервер IIS или аналогичный.

http://msdn.microsoft.com/en-us/library/ff647405.aspx

...