Skip to content
C# wrapper around CredWrite / CredRead functions to store and retreive from Windows Credential Store
C#
Branch: master
Clone or download
Latest commit dc04400 Nov 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitattributes Initial commit to add default .gitIgnore and .gitAttribute files. Nov 18, 2015
.gitignore Fix #3 Mar 25, 2017
CredentialManager.sln
License.md Add MIT license (#12) Apr 19, 2018
README.md Refactor to support .netstandard .net core (#33) Nov 9, 2019
appveyor.yml fix deployment (#34) Nov 9, 2019

README.md

Build status

Nuget Packages

.Net 4.5+

AdysTech.CredentialManager

netstandard

AdysTech.CredentialManager.Core

Latest Download

AdysTech.CredentialManager

CredentialManager

C# wrapper around CredWrite / CredRead functions to store and retrieve from Windows Credential Store. Windows OS comes equipped with a very secure robust Credential Manager from Windows Xp onwards, and good set of APIs to interact with it. However .Net framework did not provide any standard way to interact with this vault until Windows 8.1.

Microsoft Peer Channel blog (WCF team) has written a blog post in 2005 which provided basic structure of using the WIn32 APIs for credential management in .Net. I used their code, and improved up on it to add PromptForCredentials function to display a dialog to get the credentials from user.

Need: Many web services and REST Urls use basic authentication. .Net does not have a way to generate basic auth text (username:password encoded in Base64) for the current logged in user, with their credentials. ICredential.GetCredential (uri, "Basic") does not provide a way to get current user security context either as it will expose the current password in plain text. So only way to retrieve Basic auth text is to prompt the user for the credentials and storing it, or assume some stored credentials in Windows store, and retrieving it.

This project provides access to all three

1. Prompt user for Credentials

var cred = CredentialManager.PromptForCredentials ("Some Webservice", ref save, "Please provide credentials", "Credentials for service");

2. Save Credentials

var cred = new NetworkCredential ("TestUser", "Pwd");
CredentialManager.SaveCredentials ("TestSystem", cred);

3. Retrieve saved Credentials

var cred = CredentialManager.GetCredentials ("TestSystem");

Latest Download

AdysTech.CredentialManager

You can’t perform that action at this time.