asp.net 控制器中的部分类或继承

j9per5c4  于 2022-11-19  发布在  .NET
关注(0)|答案(1)|浏览(211)

我正在为三个不同的用户类(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继承自AdminControllerAdminController继承自UserController
我有点不确定最好的解决方案是什么,也不确定[Authorize]注解在部分类示例中如何工作?
实际上,我是用以下代码来注解AccountController

[Authorize(Roles = "User, Admin, SysAdmin")]

或者我是用不同的注解来注解每个特定的文件吗?
希望这有意义。
我对这个有点陌生,所以请不要给予我太多的仇恨;- )

jfgube3f

jfgube3f1#

这两个都不需要。所以我会遵循“尽可能简单”的原则。
使用三个不同的控制器。
所有三个角色都可以访问UserAccountController。只有管理员和系统管理员可以访问AdminAccountController。只有系统管理员可以访问SysAdminAccountController
不需要任何继承或组合或部分类(这与类上的属性有关,将是理解和维护的噩梦)。
如果系统管理员想要更改他们的显示名称或添加他们喜欢的图标,他们可以像其他人一样通过普通的UserAccountController。

相关问题