C# 如何在基类和派生类的PrincipalPermission中应用或

C# 如何在基类和派生类的PrincipalPermission中应用或,c#,security,role-base-authorization,genericprincipal,C#,Security,Role Base Authorization,Genericprincipal,我有一个基础班 [PrincipalPermission(SecurityAction.Demand, Role = "Admin")] public class Base { } 并导出了一个 [PrincipalPermission(SecurityAction.Demand, Role = "Developer")] public class Derived : Base { } 我想让拥有“开发者”权限的用户创建派生的对象。但我无法这样做,因为基类具有管理权限 管理员应该能够创建

我有一个基础班

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

}
并导出了一个

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

}
我想让拥有“开发者”权限的用户创建派生的对象。但我无法这样做,因为基类具有管理权限

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


如何对该问题进行排序。

这不起作用的原因是
基本类是在
派生类之前创建的。由于只有管理员可以调用
Base
类,因此您无法让
Role=Developer
创建基本对象

但是,在这个场景中,您可以在基类中引入两个构造函数,一个限制为
Admin
,另一个可能是受保护的构造函数,限制为
开发人员
。然后,您必须从
派生的
类显式地调用
开发人员的任务

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