es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el usuario actualmente conectado del dominio del sistema local en MVC.

Tengo una aplicación para una organización en la que un usuario iniciará sesión en su sistema con usuario de dominio, por lo que ahora quiero obtener ese usuario que ha iniciado sesión. He probado muchos métodos para obtener el nombre de usuario localmente, pero mi aplicación está en IIS y obtiene el usuario de IIS con “IIS APPPool\DefaultAppPool”, mientras que se obtiene el nombre del sistema y el dominio, pero no el nombre de usuario.

Este es el código que estoy utilizando para obtener el nombre de usuario:

Request.ServerVariables.Get("logon_user");
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Environment.GetEnvironmentVariable("USERNAME");
System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent()).Identity.Name;

Si alguien sabe cómo obtener el nombre de usuario local en lugar de IIS, por favor comparta. Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en C#, ASP.NET-MVC y autenticación, existen algunos métodos que puedes utilizar para recuperar el usuario que ha iniciado sesión en una organización utilizando un usuario de dominio.

    Primero, asegúrate de que tu aplicación esté configurada para utilizar la autenticación de Windows. Puedes hacer esto abriendo el archivo web.config de la aplicación y configurando el modo de autenticación como Windows.

    A continuación, intenta utilizar la propiedad User.Identity.Name para obtener la identidad del usuario actual. Esto debería devolver el dominio\nombredeusuario del usuario que ha iniciado sesión.

    Si esto no funciona, puedes intentar habilitar la suplantación en el archivo web.config de tu aplicación. Esto permitirá que tu aplicación se ejecute bajo el contexto de seguridad del usuario que ha iniciado sesión, en lugar de la identidad del IIS AppPool. Para hacer esto, establece el elemento identity en impersonate:

    <identity impersonate="true"></identity>
    

    Una vez habilitada la suplantación, puedes utilizar la propiedad Environment.UserName para obtener el nombre de usuario del usuario actual.

    Ten en cuenta que habilitar la suplantación puede tener implicaciones de seguridad, así que asegúrate de probar exhaustivamente tu aplicación y validar la entrada del usuario para prevenir posibles vulnerabilidades de seguridad.

Comments are closed.