Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如果子类已具有属性,则不会验证父类的claimsprincipalpermission_C# 4.0_Claims Based Identity_Role Base Authorization - Fatal编程技术网

C# 4.0 如果子类已具有属性,则不会验证父类的claimsprincipalpermission

C# 4.0 如果子类已具有属性,则不会验证父类的claimsprincipalpermission,c#-4.0,claims-based-identity,role-base-authorization,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",

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

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

我该如何实现它来检查派生类和基类呢?实际上,我想知道,如果其中任何一个有权限,应该允许创建对象。

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


但是IIRC这是CAS权限的行为-您可以使用旧的原则权限尝试相同的行为,以查看wrt派生的行为是否相同。

OK-我可以重新设置该行为。你试过对比原则许可吗?我的意思是比较行为。但是,是的,似乎你不能用它来实现你想要实现的目标。