0

私は基本ベースと派生クラスを持っています

[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "Base",
                           Operation = "Create")]
public abstract class Base 
{
}

[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "Derived",
                           Operation = "Create")]
public class Derived : Base
{
}

派生クラス オブジェクトを作成している場合、承認マネージャーが基本クラスをチェックすることは決してありません。

public class AuthorisationManager : ClaimsAuthorizationManager
{
    public override bool CheckAccess(AuthorizationContext context)
    {
        var resource = context.Resource.First().Value;
        var action = context.Action.First().Value;
        return context.Principal.HasClaim(resource, action);
    }
}

派生クラスと基本クラスの両方をチェックする必要があることをどのように実装できますか? 実際には、それらのいずれかが許可を持っている場合、オブジェクトの作成を許可する必要があります。

4

1 に答える 1

0

それはあなたの本当のシナリオですか?それとも、ASP.NET などのアプリ フレームワークのコンテキストでそれを使用しますか?

しかし、IIRC これは CAS アクセス許可の動作です。古き良き PrincipalPermission で同じことを試して、派生に関する動作が同じかどうかを確認できます。

于 2012-12-31T11:00:33.487 に答える