11

我需要在我的操作过滤器中访问当前登录的用户。身份由DelegatingHandler执行链的更上层设置。

可以IPrincipal使用HttpContext.Current.User. _ 到目前为止,我避免使用HttpContext.Current它,因为它在我看来是不好的风格。首先,您的代码只有在 IIS 中托管时才能工作,其次,它包含一个System.Web我认为不会受到伤害的引用,但System.Net.Http如果可能的话,我更愿意坚持使用。 光靠老好“ HttpContext感觉不对。

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

4

1 回答 1

17

我忽略了明显的。我没有意识到ControllerContext.

var username = ((ApiController)context.ControllerContext.Controller).User.Identity.Name;
于 2013-03-11T09:26:57.543 回答