如果子类已经具有属性,则不会对父类验证claimprincipalpermission

时间:2012-12-31 04:18:07

标签: c#-4.0 claims-based-identity role-base-authorization

我有一个基础基础和派生类,如

[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 个答案:

答案 0 :(得分:0)

这是你的真实场景吗?或者你想在ASP.NET等应用程序框架的上下文中使用它吗?

但是IIRC这是CAS权限的行为 - 您可以尝试使用旧的PrincipalPermission来查看行为是否相同。