Заявления principalpermission не проверяются для родительского класса, если дочерний класс уже имеет атрибут

У меня есть базовая база и производные классы, такие как

[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);
    }
}

Любая идея, как я могу реализовать, что он должен прийти, чтобы проверить для производного и базового класса обоих? На самом деле я хочу, чтобы, если у кого-либо из них было разрешение, объекту было разрешено создавать.

1 ответ

Это ваш реальный сценарий? Или вы хотите использовать это в контексте некоторой среды приложения, такой как ASP.NET?

Но IIRC - это поведение разрешений CAS - вы можете попробовать то же самое со старым добрым PrincipalPermission, чтобы увидеть, не отличается ли поведение от деривации.

Другие вопросы по тегам