0

基本クラスがあります。

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

}

そして派生したもの。

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

}

「開発者」権限を持つユーザーにDerivedのオブジェクトを作成させたい。しかし、基本クラスには管理者の権限があるため、私はできません。

管理者は、すべての派生クラスのオブジェクトを作成できる必要があります。だから私はadminの基本クラスに権限を入れたいと思います。

この問題をどのように分類できますか。

4

1 に答える 1

0

これが機能しない理由は、Baseクラスがクラスの前に作成されるためDerivedです。また、管理者だけがクラスを呼び出すことができるため、基本オブジェクトを作成Baseさせる方法はありません。Role=Developer

ただし、このシナリオでは、基本クラスに 2 つのコンストラクターを導入できAdminますDeveloper。次に、クラスDeveloperから明示的に c'tor を呼び出す必要があります。Derived

ただし、これを行うことはお勧めしません。ファクトリ クラスまたはメソッドを導入し、そこでの作成を制限したいと思います。

于 2013-10-28T10:45:57.107 に答える