В настоящее время пользователи регистрируются в веб-приложении со своими учетными данными AD (активный каталог), которые проверяются против AD. Как только внутри приложения, некоторым пользователям потребуется обновить AD. Когда я жестко задаю имя пользователя/пароль, я могу обновить AD, однако, когда я пытаюсь заставить объект использовать учетные данные для входа в систему или если я не укажу имя пользователя/пароль, он выдает ошибку. Очевидно, из-за проблем с безопасностью я не хочу жестко указывать учетные данные. Есть ли решение для этого?Обновление Active Directory без жесткого кодирования имя пользователя/пароль
Ошибка - System.DirectoryServices.DirectoryServicesCOMException: Произошла операционная ошибка.
Public Shared Sub SetProperty(ByVal de As DirectoryEntry, ByVal propName As String, ByVal propValue As String)
If Not propValue Is Nothing Then
If de.Properties.Contains(propName) Then
de.Properties(propName)(0) = propValue
Else
de.Properties(propName).Add(propValue)
End If
End If
End Sub
Public Shared Function GetDirectoryEntry(ByVal path As String) As DirectoryEntry
Dim de As New DirectoryEntry()
de.Path = path
de.Username = "<username>"
de.Password = "<password>"
'Not setting the username or password or setting both to Nothing throws the error
de.AuthenticationType = AuthenticationTypes.Secure
Return de
End Function
Dim de As DirectoryEntry = GetDirectoryEntry("<path>")
Dim searcher As DirectorySearcher = New DirectorySearcher(de)
searcher.Filter = "(&(objectCategory=person)(objectClass=user)(cn=" & fullName & "))"
searcher.SearchScope = SearchScope.SubTree
Dim result As SearchResult = searcher.FindOne()
If Not result Is Nothing Then
Dim deResult As New DirectoryEntry(result.Path)
SetProperty(deResult, "accountExpires", toAccountExpirationDate)
deResult.CommitChanges()
deResult.Close()
End If
de.Close()
Это в winforms или asp.net? –
Это asp.net, я обновлю тег. –