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

3
我想用C#编写一个应用,使用WMI获取并更改存储在Windows凭据管理器中的Windows凭据。如下图所示:

Windows凭据管理器

4个回答

2

据我所知,这只是让用户使用他们的凭据登录的功能。我可能错了,但我不认为该API中有任何更改凭据的功能。 - Andy Xufuris
@Andy 这与登录无关,而是关于将凭据存储在 Windows 7 保险库中。 - stuartd

0

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

[无返回值]Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime (new-object Windows.Security.Credentials.PasswordVault).RetrieveAll() | % { $.RetrievePassword(); $ }


0

编辑:由于图片不可见,我误解了最初的问题。

我不确定你是否可以通过WMI完成你想要的操作。然而,我认为可能可以使用DPAPI,但该文档似乎并不容易理解。但是,有一个名为NCrypto的开源项目,其中有一个名为UICredentialsHelper的类,它可能会展示给你如何做,或者至少如何入门。


0

没有 Windows API 可以获取用户密码。密码不存储在 Windows 中。相反,Windows 存储一种单向哈希版本。

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

虽然要更改凭据......祝你好运 :) 这是我对此问题的最佳答案。我认为微软永远不会给我们这样做的能力。


2
-1: 发帖者谈论的是Windows凭据管理器,用于存储用户名和密码。它不存储哈希值,而是存储机器加密后的密码,因此可以解密。 - Robert MacLean

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接