【发布时间】:2012-12-10 23:07:47
【问题描述】:
我们的网站具有复杂的管理层次结构,其中存在一些行为分歧。为了最好地引导用户流量,我创建了名为 MangersOnly、AdminOnly、NonAdmins 的授权过滤器。
我设想以这种方式使用它们
[MangersOnly]
public ActionResult Index()
{
}
[AdminOnly]
public ActionResult Index()
{
return redirectoaction("Index", "Admins");
}
[NonAdmins]
public ActionResult Index()
{
return redirectoaction("Shouldntbehere", "Errors");
}
我遗憾地发现,属性并不能作为我的操作方法的重载。
这种架构是为了避免我们必须做的所有逻辑检查(如果这个或那个角色保持不变,否则重定向到这里或那里......)。目标是将流量引导到授权属性不会失败的操作方法。
有没有一种方法可以重载这些方法(不更改它们的参数或名称),保持这种甜美(虽然幼稚)的架构来引导用户?
【问题讨论】:
-
您对 Post 操作有错误的理解。使用 HttpPost 不允许您创建相同的方法。您必须区分它们,通常是通过接受参数中的模型。