Я пытаюсь вызвать веб-сервис из консольного приложения, и мне нужно предоставить клиенту объект System.Net.NetworkCredential
.
Возможно ли создать объект NetworkCredential
для пользователя, который запустил приложение, не запрашивая имя пользователя/пароль?Получение NetworkCredential для текущего пользователя (C#)
ответ
Если вызываемая веб-служба использует интегрированную защиту для Windows, создание NetworkCredential
с текущего WindowsIdentity
должно быть достаточным, чтобы веб-служба могла использовать вход в систему для пользователей текущего пользователя. Однако, если веб-служба использует другую модель безопасности, нет никакого способа извлечь пароль пользователя из текущей идентификации ... которая сама по себе будет небезопасной, что позволит вам, разработчику, украсть ваши пароли пользователей , Вероятно, вам нужно будет предоставить какой-то способ для вашего пользователя предоставить свой пароль и сохранить его в каком-то защищенном кеше, если вы не хотите, чтобы они неоднократно предоставляли его.
Edit: Для того, чтобы получить учетные данные для текущей идентичности, используйте следующее:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");
Вы можете получить имя пользователя, используя System.Security.Principal.WindowsIdentity.GetCurrent(), но нет способа получить текущий пароль пользователя!
Я надеюсь, что нет никакого способа получения текущего пароля! :) Что я хотел бы сделать, так это использовать «текущие учетные данные» по умолчанию для веб-службы. –
- 1. Как получить учетные данные (NetworkCredential) текущего пользователя?
- 2. Sharepoint не получает текущего пользователя NetworkCredential из активного каталога
- 3. Получение текущего идентификатора пользователя
- 4. Получение текущего пользователя
- 5. Symfony2 Получение текущего пользователя
- 6. Получение GUID текущего пользователя?
- 7. C# ASP.NET; Получить объект NetworkCredential для зарегистрированного пользователя?
- 8. Только получение индекса для текущего пользователя
- 9. Получение диапазона языков для текущего пользователя Android
- 10. Получение текущего местоположения пользователя для Android
- 11. Получение начального файла паролей для текущего пользователя
- 12. Получение полного доменного имени для текущего пользователя в C#
- 13. Олицетворение и NetworkCredential
- 14. Получение текущего пользователя в DotNetNuke
- 15. Получение пользователя проекта C# aspx и поиск текущего пользователя.
- 16. django получение текущего идентификатора пользователя
- 17. Получение текущего подписанного пользователя PHP
- 18. C# NetworkCredential в PHP
- 19. Возможно ли создать объект NetworkCredential из текущего контекста HTTP?
- 20. Node.Js-Получение текущего имени пользователя Windows
- 21. Business Logic Layer - Получение текущего пользователя
- 22. Получение текущего объекта пользователя в ASP.Net MVC
- 23. От адреса показывает NetworkCredential E-mail пользователя
- 24. Получение текущего местоположения пользователя iOS 8.0
- 25. C# заменить почту от NetworkCredential
- 26. Получение идентификатора владельца контента текущего пользователя
- 27. Получение текущего пользователя понравилось в Facebook
- 28. Списка для текущего пользователя
- 29. Получение текущего идентификатора пользователя и его сохранение
- 30. C Программирование. Печать текущего пользователя
Как создать NetworkCredential из WindowsIdentity? –
Спасибо! Я просто использовал CredentialCache.DefaultNetworkCredentials. –
Метод GetCredential возвращает учетные данные из сохраненных имен пользователей и паролей в Windows XP/2003/Vista/2008? Я задал соответствующий вопрос здесь: http://stackoverflow.com/questions/994232/how-to-call-a-web-service-using-stored-credentials Если GetCredential извлекает учетные данные из магазина на основе uri & тип аутентификации, я отвечу. Я проверю это и отправлю отчет ... –