0

我有这个代码

public ActionResult Index()
{
     if (CurrentUser != null)
     {
            UserManager.User usr = (User.User)CurrentUser;
     }
}

我已经做好了 AdminController : TestController

现在在 actioninvoke 中访问这个 currentUser 的方法是什么,我用它来检查用户是否是管理员

 public class AdminAuthorize : ActionFilterAttribute 
    {
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            base.OnResultExecuting(filterContext);
        }
    }

他们无论如何都要在这个调用程序中使用 currentUser 变量。

4

2 回答 2

0

抓住当前用户不是更好HttpContext.Current.User.Identity.Name吗?所以你可以对所有控制器使用这个 ActionFilter 吗?

于 2013-05-04T12:58:17.757 回答
0

您应该能够从 filterContext 的 Controller 属性访问当前控制器实例。

public class AdminAuthorize : ActionFilterAttribute 
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        base.OnResultExecuting(filterContext);

        var currentUser = ((AdminController)filterContext.Controller).CurrentUser;

        // do what you need with currentUser
    }
}
于 2013-05-04T12:44:46.177 回答