2013-05-04 65 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?

相關問題