【发布时间】:2014-05-12 01:23:27
【问题描述】:
我知道这很丑陋,我知道我应该将它放在我一直在修补试图让它工作的 try 块中。我在这里遗漏了一些东西,我非常感谢一些帮助解决它。我要做的就是创建一个页面,其中包含一个用于登录名的文本框以及一个用于旧密码和两个用于新密码的文本框。要添加更多信息,我现在得到的错误是 未知名称。 (来自 HRESULT 的异常:0x80020006 (DISP_E_UNKNOWNNAME)) 当我尝试调用 ChangePassword 时
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
【问题讨论】:
-
我最终能够通过结合来自一堆不同项目的解决方案来解决这个问题,这段代码可以工作,但我仍然知道并相信它需要进行大量清理。我只是认为这可以帮助正在解决同样问题的其他人。解决方案代码已经改成上面的代码了。
-
鼓励自行回答问题!随时发表您的评论作为答案。
标签: asp.net vb.net active-directory