Estoy intentando invocar un servicio web desde una aplicación de consola, y debo proporcionarle al cliente un objeto System.Net.NetworkCredential
.
¿Es posible crear un objeto NetworkCredential
para el usuario que inició la aplicación sin solicitar el nombre de usuario/contraseña?Obtención de NetworkCredential para el usuario actual (C#)
Respuesta
Si el servicio web que se invoca usa la seguridad integrada de Windows, la creación de un NetworkCredential
a partir del WindowsIdentity
actual debería ser suficiente para permitir que el servicio web use el inicio de sesión actual de Windows. Sin embargo, si el servicio web utiliza un modelo de seguridad diferente, no hay forma de extraer una contraseña de usuario de la identidad actual ... que en sí misma sería insegura, lo que le permite a usted, el desarrollador, robar las contraseñas de sus usuarios. . Es probable que deba proporcionar alguna forma para que su usuario proporcione su contraseña, y mantenerla en algún caché seguro si no desea que tenga que proporcionarla en repetidas ocasiones.
Editar: Para obtener las credenciales de la identidad actual, utilice la siguiente:
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");
Puede obtener el nombre de usuario utilizando System.Security.Principal.WindowsIdentity.GetCurrent(), pero no hay forma de obtener la contraseña de usuario actual.
espero que no hay manera de conseguir la contraseña del usuario actual! :) Lo que me gustaría hacer es usar las 'credenciales actuales' como predeterminado para el servicio web. –
- 1. Personificación y NetworkCredential
- 2. Obtención de arquitectura GCC actual
- 3. Android: obtención confiable de la ubicación actual
- 4. Error de NetworkCredential en ASP.NET
- 5. Estrategia para recuperar el usuario actual
- 6. Obtenga el nombre de usuario actual en C++ en Windows
- 7. Obtención de la matriz ModelView actual
- 8. Cómo llegar carpeta temporal para el usuario actual
- 9. Obtener el directorio personal del usuario actual
- 10. Pasando NetworkCredential a HttpWebRequest en C# desde ASP.Net Página
- 11. Obtención de la interfaz de usuario angular para trabajar
- 12. obtener contexto de usuario actual
- 13. Obtención del concentrador actual en SignalR
- 14. Obtiene el usuario actual de Ver
- 15. Proceso de ejecución en el usuario actual
- 16. SharePoint obtiene el nombre de usuario actual?
- 17. ¿Usuario actual en Magento?
- 18. Buscar el idioma actual del usuario
- 19. Obtener credenciales de red del usuario actual en la aplicación de autenticación de Windows
- 20. Symfony2: Inyectar usuario actual en el Servicio
- 21. hacer el usuario en un modelo predeterminado para el usuario actual
- 22. obtener el rol del usuario actual
- 23. ¿Cómo obtener el GUID del usuario actual?
- 24. Obtención de NppExec para comprender la ruta del archivo actual en Notepad ++ (para scripts de Python)
- 25. HttpWebRequest + Windows Auth - NetworkCredential simplemente no funciona
- 26. ¿Cómo obtener una ruta al escritorio para el usuario actual en C#?
- 27. ¿Cómo puedo obtener el directorio de usuario actual?
- 28. Obtención del contenedor actual TinyIoc en un proyecto de Nancy
- 29. Obtención de C++ para compilar dentro de Eclipse
- 30. Cómo obtener la zona horaria actual del usuario en C#
¿Cómo se puede crear una NetworkCredential desde una WindowsIdentity? –
¡Gracias! Acabo de usar CredentialCache.DefaultNetworkCredentials. –
¿El método GetCredential devuelve credenciales de los nombres de usuario y contraseñas almacenados en Windows XP/2003/Vista/2008? Hice una pregunta relacionada aquí: http://stackoverflow.com/questions/994232/how-to-call-a-web-service-using-stored-credentials Si GetCredential recupera las credenciales de la tienda según el uri y tipo de autenticación, tendré mi respuesta. Voy a probar esto e informar de nuevo ... –