【问题标题】:Forgot Active Directory Password Script in .NET在 .NET 中忘记了 Active Directory 密码脚本
【发布时间】:2011-04-21 17:55:07
【问题描述】:

我正在开发基于网络的“忘记密码”来使用 LDAP 重置 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 = 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 是否可行?

感谢任何帮助!

【问题讨论】:

  • 尝试设置密码时是否出现异常?
  • 是的,如果静默失败意味着它无法执行您编写的代码。

标签: vb.net active-directory ldap


【解决方案1】:

试试这个,我在 AD 的轻量级目录服务实现中经历了这个。

Set password for active directory lightweight directory services (ad lds) on .net 2.0

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

【讨论】:

  • 我试过这个。但无法更改密码。我也没有收到错误。
【解决方案2】:

重置密码 PwdLastSet 是关键属性。如果 PwdLastSet 的值设置为零,则用户必须在重新登录时更改密码 (see article)。

关于你的附带问题:

在 Active-Directory 中创建一个新用户。

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

【讨论】:

  • 如果我想强制他们在下次登录时重置密码,我只会这样做,对吧?
  • 是的,对我来说,这就是忘记密码服务必须要做的事情。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-02
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2013-12-18
    • 2019-10-01
    • 2022-07-23
    相关资源
    最近更新 更多