У меня есть библиотека .NET Framework 4.7.2 для хранения и получения конфиденциальных данных (например, токенов для связи наших настольных приложений) с помощью пакета CredentialManagement в Windows. Теперь мне нужно заставить эту библиотеку работать как в Windows, так и в Linux. Я перенастроил его на .NET Standard 2.0 (чтобы иметь возможность использовать его как из настольных приложений .NET Framework, так и из настольных приложений .NET Core) и использовал пакет KdSoft.CredentialManagement (поскольку пакет CredentialManagement.Standard не указан на сайте nuget.org). Я определяю операционную систему с помощью RuntimeInformation.IsOSPlatform:
Код: Выделить всё
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
//Use CredentialManager
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
//What to use here?
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
throw new NotImplementedException();
}
Но я понятия не имею, какую библиотеку использовать в Linux для достижения той же цели. Какой подход наиболее распространен в этой ОС?
P. С. Моя библиотека не использует никаких баз данных. И я видел похожие вопросы № 1 и № 2: они касаются подхода только для Windows и ответов там (API защиты данных для Windows - класс ProtectData) не поддерживает Windows Home и не-NTFS.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... -0-cross-p