Я работаю над созданием веб-интерфейса «Забыли пароль» для сброса паролей AD, используя LDAP. Ну, я могу разблокировать пользователя, но не сменить пароль.
Вот моя функция:
Private Function ChangeLocalUserPassword(ByVal User As String, ByVal Pass As String) As Boolean
Dim pinger As New Net.NetworkInformation.Ping
Dim usr As DirectoryEntry
_de = GetDirectoryEntry()
If _de Is Nothing Then
'couldn't connect or find account
MsgBox("_de is Nothing")
Return False
End If
Try
usr = _de.Children.Find("CN=" & User, "User")
Catch ex As Exception
MsgBox("User could not be found!")
Return False
End Try
Try
usr.Invoke("SetPassword", Pass)
usr.CommitChanges()
usr.Properties("LockOutTime").Value = 0
usr.CommitChanges()
Catch ex As Exception
MsgBox("Error is " & ex.Message)
Return False
End Try
End Function
Вот моя функция GetDirectoryEntry:
Private Function GetDirectoryEntry() As DirectoryEntry
Dim dirEntry As DirectoryEntry = New DirectoryEntry()
dirEntry.Path = "LDAP://<SERVER>/ou=<OU>,dc=<DOMAIN>"
dirEntry.Username = "<DOMAIN>\Administrator"
dirEntry.Password = "<PASSWORD>"
Return dirEntry
End Function
Дополнительный вопрос. Кто-нибудь подскажет мне, как я могу обойти жесткое кодирование пользователя Admin на странице? Будет ли работать IUSR с несколькими правами администратора?
Любая помощь приветствуется!