当前位置: 首页 > 知识库问答 >
问题:

Windows AD无法从代码中重置密码

公冶才
2023-03-14

从代码试图

当我们手动

我们试图从ADSI和code中更新unicodePwd属性,但它不允许用户根据我们观察到的代码更新其值

[LDAP: error code 53 - 0000001F: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM)]

我们比较了之前和之前的用户详细信息

当我们试图修改usnChanged时,msDS用户帐户控制从ADSI计算,然后观察到这两个属性无法从ADSI和代码中编辑

我们还能怎么做?

共有1个答案

舒阳州
2023-03-14

要重置密码,请更新unicodePwd属性。文档告诉您一些要求:

  1. 新密码必须以特定的格式:包含在双引号中,然后转换为UTF-16编码,并且
  2. 连接必须加密。

这个页面有一个如何在Java中实现这一点的例子,我在下面粘贴了这个例子。它没有提到加密,但您可以使用LDAP over SSL(LDAPS),这可以通过使用LDAPS://而不是只使用LDAP://来实现。这假设AD服务器为LDAPS正确设置,并且没有防火墙阻止LDAPS端口(636)。

/**
 * Update User Password in Microsoft Active Directory
 * @param username
 * @param password
 */
public void updateUserPassword(String username, String password)
{
    try
    {
        System.out.println("updating password...\n");
        String quotedPassword = "\"" + password + "\"";
        char unicodePwd[] = quotedPassword.toCharArray();
        byte pwdArray[] = new byte[unicodePwd.length * 2];
        for (int i = 0; i < unicodePwd.length; i++)
        {
        pwdArray[i * 2 + 1] = (byte) (unicodePwd[i] >>> 8);
        pwdArray[i * 2 + 0] = (byte) (unicodePwd[i] & 0xff);
        }
        System.out.print("encoded password: ");
        for (int i = 0; i < pwdArray.length; i++)
        {
        System.out.print(pwdArray[i] + " ");
        }
        System.out.println();
        ModificationItem[] mods = new ModificationItem[1];
        mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("UnicodePwd", pwdArray));
        ldapContext.modifyAttributes("cn=" + username + BASE_NAME, mods);
    }
    catch (Exception e)
    {
        System.out.println("update password error: " + e);
    }
}
 类似资料:
  • 我正在使用尝试为正在运行的创建一个新的,方法是单击密码重置,然后输入带有发布ssh的新用户名。 描述说 提供新用户名将创建一个具有sudo权限的新用户帐户。提供现有用户名将重置该用户帐户的访问凭据。 每次我点击它都会显示错误 无法重置虚拟机的密码/ssh密钥。 没有理由。

  • 介绍 {tip} 想要快速上手? 只需在一个新的 Laravel 应用中运行 php artisan make:auth 命令,然后在浏览器中访问 http://your-app.dev/register 或分配给应用的任何别的 URL。这条命令将搭建起整个身份验证系统,包括重置密码! 大多数 Web 应用都为用户提供了重置密码的功能。相比强迫你在每个应用中都要重实现一遍此功能,Laravel 提

  • 本文向大家介绍Mac系统重置PostgreSQL密码的方法示例代码,包括了Mac系统重置PostgreSQL密码的方法示例代码的使用技巧和注意事项,需要的朋友参考一下 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才

  • 我们已经讲解完了,如果创建,注册用户,激活,修改,删除用户了,看似已经全了,但是我们还缺了一点 那就是为用户提供重置密码! 这个是一个网站必不可少的功能之一吧 我们重置密码,在 sentry 中分成 两步 1、发送 重置代码给用户 2、验证 重置代码,成功则修改密码 首先我们看 第一步 获取重置密码的代码 try { // 根据 email 查找用户 $user = Sentry:

  • 我写的是MVC5,使用的是Identity 2.0。 我在邮件中点击链接,我正在获得密码重置令牌并使用 结果总是false,并表示“无效令牌”。我该在哪里修?

  • 我有一个使用远程桌面应用程序的域用户。我最近通过广告重置了他的密码,虽然他可以登录到他的帐户,但他不能再对远程应用程序进行身份验证。 我已经检查了远程应用程序管理器,看不到任何设置的个人密码在那里(不认为有一个?) 他以远程桌面用户的身份安装,并通过。他桌面上的rdp文件。。关于这可能是什么有什么建议吗? 谢谢