我有一个管理区域,我只想要管理员进入该区域.我考虑过将Adminized属性添加到Admin区域中的每个控制器.是不是有优雅的解决方案,还是框架本身没有这个功能?
编辑:对不起,我之前应该提到这个.我正在使用从AuthorizeAttribute派生的自定义AuthorizedAttribute.
我正在尝试创建一个自定义ActionFilter,它操作一组参数,这些参数将从控制器传递给它.
到目前为止,我的客户ActionFilter看起来像这样:
public class CheckLoggedIn : ActionFilterAttribute
{
public IGenesisRepository gr { get; set; }
public Guid memberGuid { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
Member thisMember = gr.GetActiveMember(memberGuid);
Member bottomMember = gr.GetMemberOnBottom();
if (thisMember.Role.Tier <= bottomMember.Role.Tier)
{
filterContext
.HttpContext
.Response
.RedirectToRoute(new { controller = "Member", action = "Login" });
}
base.OnActionExecuting(filterContext);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我仍然需要检查空值等,但我无法弄清楚为什么gr并且memberGuid没有成功通过.我这样称为过滤器:
[CheckLoggedIn(gr = genesisRepository, memberGuid = md.memberGUID)]
public ActionResult Home(MemberData md)
{
return View(md);
}
Run Code Online (Sandbox Code Playgroud)
genesisRepository并且md正在控制器的构造函数中设置. …