使用C#在本地帐户上设置密码提示

时间:2017-10-31 20:35:57

标签: c#

在我更改本地用户密码后,我正在寻找设置密码提示的解决方案。

这是我用来更改密码的代码,但找不到设置密码提示的解决方案:

        PrincipalContext ctx = new PrincipalContext(ContextType.Machine);
        UserPrincipal user = UserPrincipal.FindByIdentity(ctx, userName);

        user.SetPassword(password);
        user.Save();

我甚至试图使用' DirectoryEntry'设置密码和提示,但结果是异常,并且不知道我能解决问题:

        DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer");
        DirectoryEntry grp = AD.Children.Find(userName, "user");
        if (grp != null)
        {
            grp.Invoke("SetPassword", new object[] { "test" });
            grp.Invoke("Setinfo", new object[] { "a password hint" });
        }
        grp.CommitChanges();

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您有足够的权限,显然HKLM\SAM\SAM\Domains\Account\Users\<userkey>\UserPasswordHint存储在可在注册表下访问的SAM中 - 请参阅此问题:

https://stackoverflow.com/a/26603724/2557128