2013-05-04 4 views
0

나는 AdminController : TestControllerasp.net mvc에서 actioninvoke의 공용 속성을 사용하는 방법?

이제 사용자가 관리자인지 내가 확인을 위해 그것을 사용하는 actioninvoke이 경우 CurrentUser에 액세스 할 수있는 방법은 무엇인지

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

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

이 코드를 가지고

어쨌든이 호출자에서 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에서 현재 사용자를 grap하지 않는 것이 좋습니까? 그래서이 ActionFilter를 모든 컨트롤러에 사용할 수 있습니까?

관련 문제