如何在Win7和Win8上访问存储的凭据(PasswordVault?)?

我刚刚发现Win8在控制面板上有一个部分,称为用户帐户和家庭安全Credential Manager 。 我想访问存储在那里的凭据(不是检索密码,而是将它们用作登录的令牌)。 所以,基本上,我想在已经安装的软件上进行搭载。

在本次讨论中已经提出了与解决方案最接近的方法,并不是那么接近。

  1. 我在哪里可以找到Windows.Security.Credentials.PasswordVault的程序集? 我一直在谷歌搜索两个小时,但我只获得有关应用程序开发的信息,而我将瞄准桌面。

  2. 有没有办法解析对Win7和Win8的预存凭据的访问? 我担心在Win8中对保险库设施进行了大幅改造,使得无法同时定位两个平台。

如何:使用Reference Manager添加或删除引用说:

在桌面项目中,默认情况下不显示Core选项卡。 您可以通过打开项目节点的快捷菜单,选择卸载项目 ,添加以下代码段并重新打开项目(在项目节点上选择重新加载 项目 )来添加Windows运行时。 调用“ 参考管理器”对话框时,将显示“核心”选项卡。

  8.0  

确保选中此选项卡上的Windows框。 然后,您应该能够使用WinRT元素。

我遇到了同样的问题,发现在任何地方都没有简单的答案。

这是我发现的:

  1. 您需要卸载项目并添加TargetPlatformVersion ,如上所述。
  2. 添加引用: C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Annotated\Windows.winmd
  3. 还添加引用: C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\System.Runtime.WindowsRuntime.dll

您可以使用包装的凭据管理包 。 这是一个开源项目。 我在Windows 7中检查过,它运行正常。

为了保存您的数据,请使用以下代码:

  Credential saved = new Credential("username", "password", "MyApp", CredentialType.Generic); saved.PersistanceType = PersistanceType.LocalComputer; saved.Save(); 

并加载您的数据使用:

  Credential credential = new Credential { Target = "MyApp", Type = CredentialType.Generic }; credential.Load();