如何在基类和派生类的PrincipalPermission中应用OR

本文关键字:PrincipalPermission 应用 OR 派生 基类 | 更新日期: 2023-09-27 17:50:00

我有一个基类。

[PrincipalPermission(SecurityAction.Demand, Role = "Admin")]
public class Base
{
}

和派生的

[PrincipalPermission(SecurityAction.Demand, Role = "Developer")]
public class Derived : Base
{
}

我想让用户与"开发人员"的权利来创建派生的对象。但是我不能这样做,因为基类具有admin权限。

Admin应该能够创建所有派生类的对象。所以我想把权限放在admin的基类中

我该如何排序这个问题

如何在基类和派生类的PrincipalPermission中应用OR

这不起作用的原因是Base类在Derived类之前创建。由于只有管理员才能调用Base类,所以您没有办法让Role=Developer创建基对象。

在这种情况下,你可以在基类中引入2个构造函数,一个被限制为Admin,一个可能被限制为Developer。然后,您必须从Derived类显式地调用Developer的c'tor。

然而,我真的不建议这样做。我宁愿引入一个工厂类或方法,并在那里限制创建。

相关文章:
  • 没有找到相关文章