在覆盖的方法中使用不同的 PrincipalPermissions
Using different PrincipalPermissions in an overridden method
我的基础 class 中有一个 DeleteAll
方法,需要调用特定角色(“Remover”)。我有第二个 class 派生自基础 class。在派生的 class 中,我想重写 DeleteAll
方法,这样我就可以为该方法要求一个不同的角色(“操作员”)。
public BaseClass
{
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Remover")]
public virtual void DeleteAll(IEnumerable<Guid> ids)
{
//Code to delete each id
}
}
public DerivedClass : BaseClass
{
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Operator")]
public virtual void DeleteAll(IEnumerable<Guid> ids)
{
base.DeleteAll(ids);
}
}
如果我调用 DerivedClass
的 DeleteAll
方法,它将要求用户同时具有 “操作员”和“删除器”角色.我只希望需要“操作员”角色。
有没有办法在覆盖方法时覆盖 PrincipalPermission?
我认为问题在于您在 derivedclass
中使用了 baseclass
,因此导致 DerivedClass
的 DeleteAll
方法需要同时具有“运算符”和“删除者”角色。
您可以尝试使用 OR 组合多个 PrincipalPermissionAttribute 要求。
有关详细信息,请参阅下面的 link。
How to apply OR in PrincipalPermission in base and derive class
我的基础 class 中有一个 DeleteAll
方法,需要调用特定角色(“Remover”)。我有第二个 class 派生自基础 class。在派生的 class 中,我想重写 DeleteAll
方法,这样我就可以为该方法要求一个不同的角色(“操作员”)。
public BaseClass
{
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Remover")]
public virtual void DeleteAll(IEnumerable<Guid> ids)
{
//Code to delete each id
}
}
public DerivedClass : BaseClass
{
[PrincipalPermission(SecurityAction.Demand, Authenticated = true, Role = "Operator")]
public virtual void DeleteAll(IEnumerable<Guid> ids)
{
base.DeleteAll(ids);
}
}
如果我调用 DerivedClass
的 DeleteAll
方法,它将要求用户同时具有 “操作员”和“删除器”角色.我只希望需要“操作员”角色。
有没有办法在覆盖方法时覆盖 PrincipalPermission?
我认为问题在于您在 derivedclass
中使用了 baseclass
,因此导致 DerivedClass
的 DeleteAll
方法需要同时具有“运算符”和“删除者”角色。
您可以尝试使用 OR 组合多个 PrincipalPermissionAttribute 要求。
有关详细信息,请参阅下面的 link。
How to apply OR in PrincipalPermission in base and derive class