使用c#以编程方式从凭据管理器的Web凭据部分删除任何条目

时间:2014-11-24 09:11:58

标签: c# wpf windows-8 credential-manager

我正在开发一个wpf桌面应用程序,它只允许任何用户使用3个城域应用程序,例如FB,Skype,Viber。一旦用户通过我的应用程序结束他的会话,我必须删除用户登录这些应用程序使用的凭据。我发现这些城域应用程序存储了#34; Web凭证"中的凭据相关信息。 Credential Manager的一部分。我想使用c#以编程方式删除这些enteries,以便当任何其他用户通过我的应用程序打开metro应用程序时,他会看到登录屏幕。

5 个答案:

答案 0 :(得分:1)

您可以使用PowerShell脚本来管理凭据管理器。
查看在MSDN Gallery脚本中发布的此脚本:
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Credentials-d44c3cde
然后,按照此示例从C#执行powershell命令:
http://blogs.msdn.com/b/kebab/archive/2014/04/28/executing-powershell-scripts-from-c.aspx

答案 1 :(得分:0)

看看这个How to store user credentials (XAML)。它将指导您处理Windows应用商店应用中的凭据。

答案 2 :(得分:0)

试试这段代码:

        NetworkCredential networkCredential = new NetworkCredential("username", "password");

        WebRequest webRequest = HttpWebRequest.Create("http://www.contoso.com/");
        webRequest.Credentials = networkCredential;

        CredentialCache credentialCache = new CredentialCache();
        credentialCache.Add(new Uri("http://www.contoso.com/"), "Basic", networkCredential);

        webRequest.Credentials = credentialCache;

        credentialCache.Remove(webRequest.RequestUri, "Basic");

答案 3 :(得分:0)

我想告诉我用来清除网络凭据的方法。

  1. 使用具有管理员权限的应用程序停止Credential Manager服务。
  2. 删除本地用户的Local \ Microsoft \ Vault中扩展名为.vcrd和.vsch的所有文件。
  3. 启动Credential Manager服务。
  4. 注意:对于Point 2,应用程序必须以特定的用户权限运行,因为每个用户都有自己的配置文件。

答案 4 :(得分:0)

查看Windows内置的VaultCMD。