Как получить доступ к учетным данным Windows из credentialmangement.dll через пользовательский сервис Windows - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь получить доступ к / получить имя пользователя и пароль из диспетчера учетных данных Windows, используя Credentialmanagement.dll в моей службе Windows , но я не могу получить / прочитать эти значения, так как возвращается ноль / целевой ключ не существует. но на самом деле цель существует в диспетчере учетных данных. Я могу читать и писать в других приложениях (приложения консоли / WPF), но когда я пытаюсь читать из службы Windows, он дает нулевые значения или целевой ключ не существует.

Я пытался установить службу, предоставив права администратора.

 public static string[] GetCredentials(string target) {

            target = "MyCredential";
            string[] credentials = new string[2];
            using (var credential = new Credential()) {

                credential.Target = target;
                credential.PersistanceType = PersistanceType.LocalComputer;
                credential.Type = CredentialType.Generic;
                if (credential.Exists())
                {
                    credential.Load();
                    credentials[0] = credential.Username;
                    credentials[1] = credential.Password;
                    Console.WriteLine($"User name : {credential.Username} and password : {credential.Password} ");
                    return credentials;
                } else {
                    return null;
                }
            }

        }

Приведенный выше код используется для получения данных из диспетчера учетных данных. работает нормально, когда я работаю в Visual Studio , но не работает, когда этот сервис установлен в систему через командную строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...