角色的全局授权规则

时间:2018-03-26 10:35:43

标签: c# asp.net-mvc

我有一组固定角色的MVC应用程序:Admin, Management, Student 其中一个新角色(Student)应具有对应用程序的有限访问权限。 我有很多方法,不想为每个方法写[Authorize(...属性。

有没有办法为所有方法定义一次?

1 个答案:

答案 0 :(得分:1)

也可以在控制器上定义Authorize属性。

只有在我可以使用BaseController时才定义它。当我有一个通用控制器时,每个其他控制器继承自我可以写这个:

[Authorize(Roles = "Administrator, Management")]
public abstract class BaseController : Controller
{...

然后在其他一些控制器中:

public class ClassController : BaseController
{ 
    ...
    [Authorize(Roles = ("Administrator, Management, Student"))]
    public ActionResult Method()
    {
        ...

这将确保角色Student只能访问Method,而不能访问任何控制器中定义的任何其他方法。