10

我刚刚发现 Win8 在控制面板上有一个名为User Accounts and Family Safely with Credential Manager的部分。我想访问存储在那里的凭据(不是检索密码,而是将它们用作登录令牌)。所以,基本上,我想搭上已经安装的软件。

在这个讨论中已经提出了最接近解决方案的建议,但并不是那么接近。

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

  2. 有没有办法解决对 Win7 和 Win8 的预存储凭据的访问?我有点担心保险库设施在 Win8 中已被彻底改造,因此无法同时针对两个平台。

4

3 回答 3

7

如何:使用参考管理器添加或删除参考说:

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

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

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

于 2013-02-11T14:24:05.847 回答
6

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

这是我发现的:

  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
于 2015-06-10T20:13:40.780 回答
3

您可以使用包装的凭据管理包。这是一个开源项目。我在 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();
于 2014-11-30T10:41:24.013 回答