2011-07-22 9 views
10

Estoy trabajando en una aplicación de intranet MVC 3 (autenticación de Windows). La aplicación debe mostrar la página de perfil del usuario una vez que el usuario inicie sesión. Para hacerlo, el nombre de usuario del usuario conectado debe pasarse como un parámetro de ruta en la siguiente ruta en Global.asax.cs.Obtener el nombre de usuario registrado en la aplicación de intranet ASP.NET MVC3

routes.MapRoute(
    "Initial", 
    "{controller}/{action}/{emailAlias}", // URL with parameters 
    new { controller = "Home", action = "Home", userId = **<USERNAME>**} 
); 

Aquí, para el he usado algunas alternativas.

  1. Al principio usé Environment.Username. Lo cual funciona bien en el desarrollo. Pero no después de la publicación. Porque entonces Environment.Username produce el nombre del grupo de aplicaciones en el que se ejecuta la aplicación. Como se describe here.

  2. Controller.User.Identity.Name se utiliza para obtener el nombre de usuario deseado en los controladores, funciona bien en la publicación previa y posterior. Pero no se puede usar en el contexto de Global.asax.cs.

  3. System.Web.HttpContext.Current.User.Identity.Name rendimientos de referencia nulo.

  4. System.Security.Principal.WindowsIdentity.GetCurrent().Name obras especie de igual Environment.Username

Estoy seguro de que es fácil de entender que soy un novato por ahora. Tal vez me he perdido algo obvio. Si es así, indíquelo o dígame si hay una solución simple, gracias de antemano.

+0

Así que cuando cambie userId al nombre de usuario de mi compañero de trabajo ¿aparecerá su perfil? – jao

Respuesta

13

Se supone que el código global.asax se ejecuta al inicio y cierre de la aplicación y usted no tiene ninguna sesión o usuario en ese momento (de ahí el nombre global). ¿Por qué necesitas el nombre de usuario en la ruta? Solo debe usar User.Identity.Name en el código de los controladores para identificar al usuario en lugar de confiar en que lo obtenga como parámetro.

+0

+1 para apuntar al controlador en lugar de la ruta – jao

Cuestiones relacionadas