2013-05-04 67 views
0

我有这样的代码如何在asp.net mvc的actioninvoke中使用公共属性?

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变量。

回答

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 
    } 
} 
0

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

相关问题