我使用自定义 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);
}
}
我在我拥有的每个操作的顶部使用此过滤器,并检查是否已授权,需要操作名称、控制器名称和区域名称。那么有什么方法可以在AuthorizeCore()
use这样的方法中获取这些名称System.Web.HttpContextBase
?如果答案是否定的,那么我如何获取这些名称并将其传递给属性,显然我不想手动添加每个名称,实际上就像ViewContext.RouteData.Values["Controller"]
在控制器中一样:
[ActionAuthorize(actionName=Action, controller=ControllerName, area=AreaName)]
public ActionResult Index() {
return View();
}
有人对此有任何想法吗?