我正在为三个不同的用户类(SysAdmin、Admin和User)创建一个auth控制器,我想知道是创建部分类还是使用继承更好。
使用部分类时,我会将其设置为:
//file 1
[Authorize(Roles="SysAdmin")
public partial class AccountController { } //--> for sysadmin
//file 2
[Authorize(Roles="SysAdmin,Admin")
public partial class AccountController { } //--> for admin
//file 3
[Authorize(Roles="SysAdmin,Admin,User")
public partial class AccountController { } //--> for user
使用继承方法,我将使SysAminController
继承自AdminController
,AdminController
继承自UserController
。
我有点不确定最好的解决方案是什么,也不确定[Authorize]
注解在部分类示例中如何工作?
实际上,我是用以下代码来注解AccountController
[Authorize(Roles = "User, Admin, SysAdmin")]
或者我是用不同的注解来注解每个特定的文件吗?
希望这有意义。
我对这个有点陌生,所以请不要给予我太多的仇恨;- )
1条答案
按热度按时间jfgube3f1#
这两个都不需要。所以我会遵循“尽可能简单”的原则。
使用三个不同的控制器。
所有三个角色都可以访问
UserAccountController
。只有管理员和系统管理员可以访问AdminAccountController
。只有系统管理员可以访问SysAdminAccountController
。不需要任何继承或组合或部分类(这与类上的属性有关,将是理解和维护的噩梦)。
如果系统管理员想要更改他们的显示名称或添加他们喜欢的图标,他们可以像其他人一样通过普通的UserAccountController。