Ответ 1
Если вызываемая веб-служба использует встроенную защиту для Windows, создание NetworkCredential
из текущего WindowsIdentity
должно быть достаточным, чтобы веб-служба могла использовать текущий вход в Windows. Однако, если веб-служба использует другую модель безопасности, нет никакого способа извлечь пароль пользователя из текущей идентификации... которая сама по себе будет небезопасной, что позволит вам, разработчику, украсть ваши пароли пользователей, Вероятно, вам нужно предоставить какой-то способ для вашего пользователя предоставить свой пароль и сохранить его в каком-то защищенном кеше, если вы не хотите, чтобы они неоднократно предоставляли его.
Изменить: Чтобы получить учетные данные для текущего идентификатора, используйте следующее:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");