Vb.net 忘记了.NET中的Active Directory密码脚本
我正在使用LDAP开发一个基于web的忘记密码重置AD密码。嗯,我可以解锁用户,但不能更改密码 以下是我的功能:Vb.net 忘记了.NET中的Active Directory密码脚本,vb.net,active-directory,ldap,Vb.net,Active Directory,Ldap,我正在使用LDAP开发一个基于web的忘记密码重置AD密码。嗯,我可以解锁用户,但不能更改密码 以下是我的功能: 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 = GetDire
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
一个附带的问题-有人向我建议,我如何在页面上对管理员用户进行硬编码?创建具有一些管理员权限的IUSR是否可行
感谢您的帮助 试试这个,我在AD的轻量级目录服务实现中介绍了这个
基本上,您必须先创建条目,然后设置密码。重置密码PwdLastSet是密钥属性。如果PwdLastSet的值设置为零,则用户必须在重新登录时更改密码 关于你的补充问题: 在Active Directory中创建新用户
在目标组织单元中,或者直接在域容器上,您只需将重置密码的权限委托给新用户即可。因此,您的应用程序只需操作一个用户和密码即可重置密码。在AD中创建一个组,创建一个用户,将密码更改选项委托给该组,通常在OU级别执行。这是大多数组织在拥有帮助台功能时的做法。
如果我想强制他们在下次登录时重置密码,我只会这样做,对吗?是的,对我来说,这就是forgoten密码服务必须做的。我尝试了这个。但无法更改密码。我也没有遇到错误。当您尝试设置密码时,是否会出现异常?是的,如果静默失败意味着它无法执行您编码的操作。