Как определить Windows Credential Manager, доступный в ОС - PullRequest
0 голосов
/ 22 апреля 2019

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

Моя идея заключается в том,сохранить учетные данные приложения в диспетчере учетных данных Windows, если ОС поддерживает их (целевая ОС может быть от Vista до Win10), в противном случае сохраните их в реестре Windows.Однако проблема, с которой я сталкиваюсь, заключается в том, как я могу проверить, что ОС поддерживает Windows Credential Manager, я где-то читал, что он выдаст ошибку, если ее не существует, но есть лучший способ, где я могу проверить это, не обрабатывая его висключение.

Я использую CredentialManagement Пакет Nuget для доступа к функциям диспетчера учетных данных Windows.

    public static string GetPassword()
    {
        try
        {
            using (var cred = new Credential())
            {
                cred.Target = CredentialName;

                if (cred.Exists())
                {
                    cred.Load();
                    return cred.Password;
                }
                else
                {
                    return string.Empty;
                }
            }
        }
        catch (Exception ex)
        {
            // Handle the exception
        }
    }
...