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