认证 – WebApi ActionFilterAttribute,HttpActionContext访问用户名(IPrincipal)

前端之家收集整理的这篇文章主要介绍了认证 – WebApi ActionFilterAttribute,HttpActionContext访问用户名(IPrincipal)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这个问题在这里已经有一个答案:> Can I access IIdentity from Web API4个
我需要在我的操作过滤器中访问当前登录用户.身份由DelegatingHandler进一步设定执行链.

我可以使用HttpContext.Current.User访问当前的IPrincipal.
到目前为止,我避免使用HttpContext.Current,因为它对我来说是不好的风格.
首先你的代码只有在IIS中托管时才能工作,其次它包含对System.Web的引用,我猜不会受伤,但是如果可能的话我宁愿坚持使用System.Net.Http.
依靠好的旧“HttpContext”感觉错了.

有没有其他方法可以在ActionFilter中访问用户的身份?或者,如果您不打算运行自托管应用程序,可以使用HttpContext吗?

解决方法

我忽略了明显的.我没有意识到ControllerContext中有一个Controller属性.
var username = ((ApiController)context.ControllerContext.Controller).User.Identity.Name;

猜你在找的asp.Net相关文章