我有一组固定角色的MVC应用程序:Admin, Management, Student
其中一个新角色(Student
)应具有对应用程序的有限访问权限。
我有很多方法,不想为每个方法写[Authorize(...
属性。
有没有办法为所有方法定义一次?
答案 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
,而不能访问任何控制器中定义的任何其他方法。