Подтвердить что ты не робот

Получение NetworkCredential для текущего пользователя (С#)

Я пытаюсь вызвать веб-сервис из консольного приложения, и мне нужно предоставить клиенту объект System.Net.NetworkCredential.
Возможно ли создать объект NetworkCredential для пользователя, который запустил приложение, не запрашивая имя пользователя/пароль?

4b9b3361

Ответ 1

Если вызываемая веб-служба использует встроенную защиту для Windows, создание NetworkCredential из текущего WindowsIdentity должно быть достаточным, чтобы веб-служба могла использовать текущий вход в Windows. Однако, если веб-служба использует другую модель безопасности, нет никакого способа извлечь пароль пользователя из текущей идентификации... которая сама по себе будет небезопасной, что позволит вам, разработчику, украсть ваши пароли пользователей, Вероятно, вам нужно предоставить какой-то способ для вашего пользователя предоставить свой пароль и сохранить его в каком-то защищенном кеше, если вы не хотите, чтобы они неоднократно предоставляли его.

Изменить: Чтобы получить учетные данные для текущего идентификатора, используйте следующее:

Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");