我正在使用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以及如何查询请求是否来自移动客户端?
答案 0 :(得分:0)
首先,获取userId的正确语法是:
HttpContext.Current.User.Identity.GetUserId();
更重要的是,如何获得匿名身份验证的userId?必须对用户进行身份验证才能获取userId。您必须禁用匿名身份验证,并启用Windows身份验证。
您也可以使用Asp.Identity UseManager,并获得userId:
RequestContext.Principal.Identity.GetUserId();