在asp.net web api中的ExceptionFilterAttribute中获取userId信息

时间:2017-02-09 19:58:09

标签: c# asp.net asp.net-web-api asp.net-web-api2

我正在使用asp.net web api项目。我添加了ExceptionFilterAttribute

public class ExceptionFilter : ExceptionFilterAttribute
    {
        public override void OnException(HttpActionExecutedContext context)
        {
               //How to get user id. 
        }
    }

在我的项目中,我启用了匿名身份验证。我试图使用HttpContext.Current.User.Identity.Name;获取userId,但该值始终为空字符串。我是否需要包含任何nugget包来获取userId?

有时,我可能会通过移动客户端获取请求,在这种情况下,我如何检查userId以及如何查询请求是否来自移动客户端?

1 个答案:

答案 0 :(得分:0)

首先,获取userId的正确语法是:

HttpContext.Current.User.Identity.GetUserId();

更重要的是,如何获得匿名身份验证的userId?必须对用户进行身份验证才能获取userId。您必须禁用匿名身份验证,并启用Windows身份验证。

您也可以使用Asp.Identity UseManager,并获得userId:

RequestContext.Principal.Identity.GetUserId();