Как хранить логин/пароль локально в .NET Core?

Всем привет! Знаю, что вопрос избитый и ответ: "пароли хранить нельзя". Но все же возникала такая необходимость.

Задача:

Приложение на Avalonia UI (C#/.Net Core) для Windows/Linux для взаимодействия с Redmine. Для работы с Redmine используется redmine-net-api. Вход по логину/паролю.

Должно обеспечиваться:

При первом запуске запрос логина/пароля, при последующих автоматический вход, а также смена логина/пароля для входа в настройках.

Необходимо (достаточно):

Автоматический вход выполняется только для того пользователя, который указал логин/пароль. Т.е. другой пользователь при запуске приложения на той же машине не авторизуется в RM под ранее указанными данными другого пользователя. Также при копировании файлов приложения получившего логин/пароль на другую машину - взаимодействие с RM было не возможно.

Варианты:

Для Windows есть решение: Retrieve credentials from Windows Credentials Store using C# , но хотелось обеспечить работу приложения на других ОС (хотя бы linux).

Также была идея использовать примерно такое решение: Data Encryption And Decryption in C#. Но в таком случае возникает проблема хранения ключа.

Также была идея использовать решение выше, а ключ собирать на лету из уникальных данных машины и пользователя, но как я понял в .NET Core нет универсального решения получения таких данных на разных ОС.

Может кто что подскажет?


Ответы (0 шт):