networkcredential example c# web-services authentication

networkcredential c# example



Obtener NetworkCredential para el usuario actual(C#) (2)

Puede obtener el nombre de usuario usando System.Security.Principal.WindowsIdentity.GetCurrent() pero no hay forma de obtener la contraseña actual del usuario.

Intento 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?


Si el servicio web que se invoca usa la seguridad integrada de Windows, la creación de un NetworkCredential 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 para la identidad actual, use lo siguiente:

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