Получить учетные данные по умолчанию из службы Windows

Я хочу иметь возможность получить учетные данные по умолчанию из службы Windows. Однако, если я позвоню

var credentials = CredentialCache.DefaultCredentials;

Or

var networkCredentials = CredentialCache.DefaultNetWorkCredentials;

Возвращаемый NetworkCredential (как ICredential), имя пользователя, домен и т. д. пусты. Я запускаю службу Windows под учетной записью домена.

Если я создаю простое консольное приложение, возвращаются действительные учетные данные.

Причина, по которой мне это нужно, заключается в том, чтобы иметь возможность установить учетные данные для signalR HubConnection. Служба SignalR работает в IIS с включенной проверкой подлинности Windows. Я вижу единственный способ сделать это — установить свойство HubConnection.Credentials. Но, как объяснялось выше, я не могу получить учетные данные, когда работаю в службе Windows.

Кто-нибудь может помочь?


person rideintothesun    schedule 19.02.2015    source источник
comment
Учетные данные хранятся для каждого пользователя. Вы запускаете консольное приложение из той же учетной записи пользователя, в которой работает служба?   -  person Harry Johnston    schedule 20.02.2015
comment
Да, оба используют один и тот же аккаунт   -  person rideintothesun    schedule 21.02.2015
comment
На том же компьютере? Кроме того, я только что понял, что не уверен, что правильно прочитал вопрос: вы имеете в виду, что код, который должен установить соединение, работает под IIS или что он пытается подключиться к серверу IIS? (В последнем случае я ожидаю, что он будет работать без установки каких-либо учетных данных, поскольку вы используете проверку подлинности Windows.)   -  person Harry Johnston    schedule 22.02.2015
comment
Ситуация такова, что у меня есть служба Windows, которой нужно вызвать службу signalr, которая работает в IIS. В IIS включена проверка подлинности Windows   -  person rideintothesun    schedule 23.02.2015
comment
Что произойдет, если вы не установите свойство HubConnection.Credentials?   -  person Harry Johnston    schedule 23.02.2015


Ответы (1)


Я обнаружил, что проблема не в этом, и невозможность получить учетные данные была отвлекающим маневром (я обнаружил, что не могу получить их и в консоли), при вызове в концентратор SignalR удостоверение передается, а запрос аутентифицируется ИИС.

Но в заключение. Это была моя глупая ошибка, ничего общего с учетными данными по умолчанию.

В качестве примечания: учетные данные недоступны для получения намеренно, см. ссылка

person rideintothesun    schedule 27.02.2015
comment
Я не понимаю, что такое фактическое решение. Как вы передали учетные данные SignalR, работающему в IIS, с проверкой подлинности Windows. Можете ли вы предоставить более подробную информацию? - person bdaniel7; 29.10.2015
comment
Я не делал, это был другой вопрос. Путь через балансировщики нагрузки блокировал меня. Как только это было настроено в балансировщике нагрузки, все заработало. - person rideintothesun; 18.11.2015