我正在为asp.net MVC创建一个自定义动作过滤器。
在OnActionExecuting()
方法中。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string userName = ?????// how can I get this?
}
我需要找出当前用户名(我正在使用表单身份验证)
在控制器中,我只需执行User.Identity.Name
有没有办法在ActionFilter中获取用户名?
答案 0 :(得分:42)
string userName = filterContext.HttpContext.User.Identity.Name;
如果您想先检查是否有经过身份验证的用户:
string userName = null;
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
userName = filterContext.HttpContext.User.Identity.Name;
}