【发布时间】:2018-06-29 03:57:31
【问题描述】:
我的应用程序中有两个角色:Admin 和 ContentMaker。管理员拥有完全访问权限,ContentMaker 可以创建\编辑文章。一个用户有一个角色(一对一)。
虽然我只有一个AdminController 用于所有用 AuthorizeAttribute 装饰的东西(包括管理文章)。我只想授予在 AdminController 中编辑 ContentMaker 的文章的权限。问题是 contentmaker 不是管理员,所以他根本无法访问 AdminController。是否可以扩展 AuthorizeAttribute 以允许这种行为?这就是我想要的:
//only Admin can access this controller
[Authorize(Roles = ConstantsWeb.Database.AdminRoleName)]
public partial class AdminController : Controller
{
//ContentMaker has no access here
public ActionResult SomeAdminStuffAction()
{
//code
}
//ContentMaker only has access here, although he is not Admin
[Authorize(Roles = ConstantsWeb.Database.ContentMakerRoleName)]
public ActionResult EditArticle(int id)
{
//code
}
}
【问题讨论】: