【发布时间】:2019-01-29 04:07:12
【问题描述】:
我正在尝试编写一种方法,通过在代码中嵌入另一个帐户,让没有足够权限的帐户的帮助台人员重置密码。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim RootDSE As New DirectoryServices.DirectoryEntry("LDAP://something.com/OU=COW,DC=spmething,DC=com")
Dim DomainDN As String = RootDSE.Properties("DefaultNamingContext").Value
Dim ADEntry As New DirectoryServices.DirectoryEntry("LDAP://" & "DC=something,DC=com")
Dim ADSearch As New System.DirectoryServices.DirectorySearcher(ADEntry)
If RadioButton1.Checked = True Then
ADSearch.Filter = ("(samAccountName=" & Loginnames.Text & ")")
ADSearch.SearchScope = SearchScope.Subtree
Dim UserFound As SearchResult = ADSearch.FindOne()
If Not IsNothing(UserFound) Then
Dim UserDirectoryEntry As DirectoryEntry = UserFound.GetDirectoryEntry
UserDirectoryEntry.Invoke("SetPassword", New Object() {TextBox2.Text})
'...
email = UserFound.GetDirectoryEntry.Properties("userPrincipalName").Value
MsgBox("Password has been rest!")
End If
End If
我需要使用帮助台以外的用户来执行此操作,因为帮助台用户无权执行此操作。而且我们不想将任何事情委托给他。
他现在得到的错误是:0x80070005 (E_ACCESSDENIED)
【问题讨论】:
标签: vb.net active-directory ldap impersonation