Удалите любую запись из части веб-учетных данных программного менеджера, используя C#

Я разрабатываю настольное wpf-приложение, которое позволит любому пользователю использовать только 3 приложения метро, ​​например, FB, Skype, Viber. Как только пользователь завершит свою сессию через мое приложение, мне придется удалить учетные данные, используемые пользователем для входа в эти приложения. Я обнаружил, что эти приложения метро хранят информацию, относящуюся к учетным данным, в разделе "Веб-учетные данные" Диспетчера учетных данных. Я хочу удалить эти записи программно, используя C#, чтобы, когда любой другой пользователь открыл приложение metro через мое приложение, он увидел экран входа в систему.

4 ответа

Решение

Я хотел бы рассказать метод, который я использовал для очистки веб-учетных данных.

  1. Остановите службу Credential Manager из приложения, работающего с правами администратора.
  2. Удалите все файлы с расширениями.vcrd и.vsch в локальных пользователях Local\Microsoft\Vault.
  3. Запустите сервис Credential Manager.

Примечание. Для пункта 2 приложение должно работать с определенными правами пользователя, поскольку у каждого пользователя есть свой профиль.

Вы можете использовать скрипт PowerShell для управления диспетчером учетных данных.
Просмотрите этот скрипт, опубликованный в скриптах MSDN Gallery:
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Credentials-d44c3cde
Затем следуйте этому примеру, чтобы выполнить команду powershell из C#:
http://blogs.msdn.com/b/kebab/archive/2014/04/28/executing-powershell-scripts-from-c.aspx

Посмотрите на это Как хранить учетные данные пользователя (XAML). Это поможет вам справиться с учетными данными в приложениях Windows Store.

Посмотрите на VaultCMD, встроенный в Windows.

Попробуйте этот код:

        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");
Другие вопросы по тегам