如何获取和更改Windows凭据用户名和密码

时间:2010-11-17 15:25:39

标签: c# windows credentials

我想使用WMI在C#中编写一个应用程序,它可以获取和更改存储在Windows凭据管理器中的Windows凭据,如下图所示:

Windows Credential manager

4 个答案:

答案 0 :(得分:2)

Ookii.Dialogs包含一个凭据对话框,可以根据需要调用CredUIPromptForCredentialsCredUIPromptForWindowsCredentials

编辑:[{3}}详细介绍了凭据API - 但从托管代码实现可能很棘手。在CredUIPromptForWindowsCredentials之后,您可以致电http://msdn.microsoft.com/en-us/library/aa374731%28v=VS.85%29.aspx#credentials_management_ui_functions来保存凭据。

答案 1 :(得分:0)

编辑:误解了原始问题,因为图片不可见。

我不确定你是否可以通过WMI做你想做的事。但是,我认为可能使用DPAPI,但是文档似乎并不容易。但是,有一个名为NCrypto的开源项目有一个名为UICredentialsHelper的类,可能会告诉您如何操作,或者至少如何开始。

答案 2 :(得分:0)

没有Windows API来获取用户的密码。密码不存储在Windows中。相反,Windows存储单向散列版本。

您可以使用WindowsIdentity.GetCurrent()获取用户名。或者,您可以通过Environment.UserName属性获取登录的用户名。

虽然改变凭据.....祝你好运:)这就是我最好的答案。我不认为微软会给我们这样做的能力。

答案 3 :(得分:0)

[空隙] Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType的= WindowsRuntime] (new-object Windows.Security.Credentials.PasswordVault).RetrieveAll()| %{$ .RetrievePassword(); $ }