Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#在Windows 10中更改用户密码_C#_Windows_Windows 10_Change Password - Fatal编程技术网

C#在Windows 10中更改用户密码

C#在Windows 10中更改用户密码,c#,windows,windows-10,change-password,C#,Windows,Windows 10,Change Password,我正在尝试创建一个windows窗体,提醒用户重置密码。该应用程序的目的是确保他们连接到VPN,然后允许他们在该点更改密码,以便将其同步到我们的域。我已经使用VPN连接的端点手动测试了这一点,然后成功地使用ctrl+alt+del更改密码。我想在我的应用程序中实现同样的功能。有人知道如何调用控件alt delete change password显示的接口,或者其他具有相同功能的程序吗?我尝试过这个命令,但它没有适当的权限(似乎它必须以管理员身份运行,这不是一个选项)。大多数用户都在Window

我正在尝试创建一个windows窗体,提醒用户重置密码。该应用程序的目的是确保他们连接到VPN,然后允许他们在该点更改密码,以便将其同步到我们的域。我已经使用VPN连接的端点手动测试了这一点,然后成功地使用ctrl+alt+del更改密码。我想在我的应用程序中实现同样的功能。有人知道如何调用控件alt delete change password显示的接口,或者其他具有相同功能的程序吗?我尝试过这个命令,但它没有适当的权限(似乎它必须以管理员身份运行,这不是一个选项)。大多数用户都在Windows10上,少数用户在7和8上。如果您能提供任何建议,我将不胜感激。

感谢@joelc让我注意到这一点,并感谢@paul提供原始片段

请确保右键单击引用并以这种方式添加System.DirectoryServices.AccountManager,因为如果仅使用using命令将其添加到代码顶部,则会出现错误

这是我最后得到的代码

这是在顶部:

using System.DirectoryServices.AccountManagement;
这适用于您希望更改密码的任何地方,即按下按钮:

try
{
    using (var context = new PrincipalContext(ContextType.Domain, "website.net"))
    using (var user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, usernameTextBox.Text))      
    user.ChangePassword(oldPasswordTextBox.Text, newPasswordTextBox2.Text);
    MessageBox.Show("Password Changed");                        
}
catch (Exception e2)
{
    MessageBox.Show(e2.ToString());
}

您想触发
ctrl+alt+del
还是想实际更改代码中的密码?理想情况下,我希望更改代码中的密码,而不是触发ctrl+alt+del。原因是,在触发ctrl、alt、del之后,用户可能会按下一个按钮并将一切搞乱,或者可能是按不同次数的箭头键才能到达更改密码提示。可能重复:谢谢你,Joel,我没有看到那个。这在没有管理员权限的情况下可以完美地工作。我看到很多人在使用类似的函数来获取在线密码。那有帮助!如果其他任何人使用ChangePassword函数,请确保右键单击引用并以这种方式添加System.DirectoryServices.AccountManager,因为如果仅使用using命令将其添加到代码顶部,则会出现错误。