次のようなカスタム AuthorizationFilter を使用します。
public class ActionAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) {
if(!httpContext.User.Identity.IsAuthenticated)
return false;
if(IsUserExcluded())
return false;
else
return IsRoleAuthorize(httpContext);
}
}
私はこのフィルターを各アクションの上部で使用します。Is Authorized をチェックするには、アクション名、コントローラー名、およびエリア名が必要です。AuthorizeCore()
use のようなメソッドでこの名前を取得する方法はありますSystem.Web.HttpContextBase
か? 答えが「いいえ」の場合、どうすればこの名前を取得して属性に渡すことができますかViewContext.RouteData.Values["Controller"]
?
[ActionAuthorize(actionName=Action, controller=ControllerName, area=AreaName)]
public ActionResult Index() {
return View();
}
誰でもそれについて何か考えがありますか?