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

时间:2013-02-11 13:50:55

标签: c# security passwordvault

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

this discussion建议最接近某个解决方案,并且 关闭。

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

  2. 有没有办法解析对Win7和Win8预先存储的凭据的访问权限?我担心在Win8中对保险库设施进行了大幅度改造,使其成为可能不可能同时针对两个平台。

3 个答案:

答案 0 :(得分:6)

How to: Add or Remove References By Using the Reference Manager说:

  

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

<PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
     

确保选中此标签上的Windows框。你应该是   能够使用WinRT元素。

答案 1 :(得分:4)

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

这是我发现的:

  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

答案 2 :(得分:2)

您可以使用包裹的Credential Management package。这是一个开源项目。我在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();