0

我有一个基类。

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

}

并派生出一个。

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

}

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

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

我该如何解决这个问题。

4

1 回答 1

0

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

但是,在这种情况下,您可以在基类中引入 2 个构造函数,一个Admin受限于Developer. 然后,您必须DeveloperDerived类中显式调用 c'tor。

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

于 2013-10-28T10:45:57.107 回答