qtc-net-client/QtCNETAPI/Services/CredentialService.cs

43 lines
1.4 KiB
C#

using Meziantou.Framework.Win32;
namespace QtCNETAPI.Services
{
public class CredentialService()
{
/*
* NOTE *
This does not work on other platforms such as Linux or macOS.
I will probably recode the legacy way of doing this for those other platforms.
*/
public void SaveAccessToken(string username, string accessToken)
{
string applicationName = "QtC.NET";
if (System.Diagnostics.Debugger.IsAttached) applicationName = "QtC.NET.Development";
CredentialManager.WriteCredential(applicationName, username, accessToken, $"Access Token For User {username} On QtC.NET", CredentialPersistence.LocalMachine);
}
public void DeleteAccessToken()
{
string applicationName = "QtC.NET";
if (System.Diagnostics.Debugger.IsAttached) applicationName = "QtC.NET.Development";
CredentialManager.DeleteCredential(applicationName);
}
public string? GetAccessToken()
{
string applicationName = "QtC.NET";
if (System.Diagnostics.Debugger.IsAttached) applicationName = "QtC.NET.Development";
var credential = CredentialManager.ReadCredential(applicationName);
if (credential == null) return null;
return credential.Password;
}
}
}