2011-10-19 15 views
18

Estoy creando un filtro de acción personalizado para asp.net MVC.ASP.NET MVC que busca el nombre de usuario actual en un filtro de acción personalizado

En el método OnActionExecuting().

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    string userName = ?????// how can I get this? 
} 

necesito para averiguar el nombre de usuario actual (estoy usando la autenticación de formularios)

En el controlador puedo simplemente hacer User.Identity.Name

¿Hay una manera de obtener el nombre de los usuarios de el ActionFilter?

Respuesta

42
string userName = filterContext.HttpContext.User.Identity.Name; 

Y si se quería comprobar si hay un usuario autenticado primero:

string userName = null; 
if (filterContext.HttpContext.User.Identity.IsAuthenticated) 
{ 
    userName = filterContext.HttpContext.User.Identity.Name; 
} 
+0

Bueno, eso era muy fácil, sin saber por qué tiene un momento tan difícil encontrarlo. ¡Gracias una vez más, Darin! – twaldron

+0

@twaldron, eres bienvenido. –

+0

@DarinDimitrov ¿Cómo obtener UserId en lugar de name? En la acción del controlador, simplemente puedo usar 'User.Identity.GetUserId();' – Lijo

Cuestiones relacionadas