c# - 密码过期时如何在事件目录中更改密码

标签 c# .net active-directory ldap

在 Microsoft Active Directory(AD) 中,如果有人密码过期,如何更改密码使用他们的旧密码

我知道 System.DirectoryService 有一个 ChangePassword 方法,但是当密码过期时它不起作用。

我比你更需要一些帮助!

顺便说一句,不能使用SetPassword方法,因为它必须有特殊权限。

最佳答案

您可以使用 NetUserChangePassword netapi32.dll 中的函数。

[DllImport("netapi32.dll", CharSet=CharSet.Unicode,
    CallingConvention=CallingConvention.StdCall,
    SetLastError=true )]
static extern uint NetUserChangePassword (
    [MarshalAs(UnmanagedType.LPWStr)] string domainname,
    [MarshalAs(UnmanagedType.LPWStr)] string username,
    [MarshalAs(UnmanagedType.LPWStr)] string oldpassword,
    [MarshalAs(UnmanagedType.LPWStr)] string newpassword
);

关于c# - 密码过期时如何在事件目录中更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25281400/

相关文章:

c# - 禁用表单的透明度

c# - 如何通过 WebSocket 发送更大的消息?

.net - 如何在不锁定文件的情况下获取程序集版本?

c# - 为什么 Entity Framework Core 2.2 C# 在使用现有嵌套实体插入新实体时会响应错误

asp.net - 事件目录认证

powershell - “Cannot validate argument on parameter '更改多个用户的描述时的身份'”

c# - Json.NET 保留 native 类型

c# - 匹配整数类型名称的浮点类型名称?

c# - ViewState 在更新 DataTable 的同时自动更新

c++ - 验证 native 的 Active Directory 域信任关系