加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

认证 – WebApi ActionFilterAttribute,HttpActionContext访问用

发布时间:2020-12-15 20:26:40 所属栏目:asp.Net 来源:网络整理
导读:这个问题在这里已经有一个答案: Can I access IIdentity from Web API4个 我需要在我的操作过滤器中访问当前登录的用户.身份由DelegatingHandler进一步设定执行链. 我可以使用HttpContext.Current.User访问当前的IPrincipal. 到目前为止,我避免使用HttpCont
这个问题在这里已经有一个答案:> 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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读