在.net中忘记了活动目录密码脚本



我正在研究一个基于web的"忘记密码"重置AD密码,使用LDAP。我可以解锁用户,但不能修改密码。

下面是我的函数:

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实现上经历了这个。

为。net 2.0上的活动目录轻量级目录服务(ad lds)设置密码

基本上你必须先创建条目,然后设置密码。

重置密码PwdLastSet是关键属性。如果PwdLastSet的值被设置为零,那么用户在再次登录时必须更改密码(见文章)。

你的侧边问题:

创建Active-Directory新用户。

在目标组织单元中,或者直接在域容器上,您只需要将重置密码的权限委托给新用户。所以你的应用程序只操作用户和密码只允许重置密码

在AD中创建组,创建用户,将密码更改选项委托给组,通常在OU级别完成。这是大多数组织在拥有帮助台功能时的做法。
http://www.windowsecurity.com/articles/Implementing-Active-Directory-Delegation-Administration.html

最新更新