0
我知道这是丑陋的,我知道我应该试试块,我只是在试图让它工作。我在这里错过了一些东西,我真的很感激一些帮助。我所要做的就是创建一个包含登录名称文本框的页面,以及一个用于旧密码和两个用于新密码的页面。要添加更多信息,我现在得到的错误是 未知名称。 (异常来自HRESULT:0x80020006(DISP_E_UNKNOWNNAME)) 当我尝试调用ChangePasswordASP.NET更改AD密码
Dim userid As String
Dim password As String
Dim login As String
Dim check As String
login = txtLogin.Text
userid = txtLogin.Text
password = txtOldPass.Text
Dim entry As DirectoryEntry = New DirectoryEntry("LDAP://OU=PaidUsers,DC=LOCAL,DC=bb", "LOCAL\" & userid, password)
Dim obj As Object = entry.NativeObject
Dim search As DirectorySearcher = New DirectorySearcher(entry)
search.SearchScope = SearchScope.Subtree
search.Filter = "(SAMAccountName=" & login & ")"
Dim result As SearchResult = search.FindOne()
check = CType(result.Properties("sAMAccountName")(0), String)
If check = login Then
If txtNewPass.Text = txtNewPass2.Text Then
entry = result.GetDirectoryEntry()
entry.Username = "LOCAL\" & check
entry.Password = txtOldPass.Text
entry.AuthenticationType = AuthenticationTypes.Secure
entry.Options.Referral = ReferralChasingOption.All
entry.Invoke("ChangePassword", txtOldPass.Text, txtNewPass.Text)
entry.CommitChanges()
lblSuccess.Visible = True
Else
lblPasswdError.Visible = True
End If
Else
lblError.Visible = True
End If
我能够通过结合一系列不同项目的解决方案最终弄清楚这个代码,但我仍然知道并相信它需要大幅度清理。我只是认为这可以帮助别人解决同样的问题。解决方案代码已更改为上述代码。 – JTuman
鼓励自问自答!随意发表您的评论作为答案。 –