У меня есть метод DeleteAll
в моем базовом классе, который требует вызова определенной роли ("Remover"). У меня есть второй класс, производный от базового класса. В производном классе я хочу переопределить метод 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 при переопределении метода?
Я думаю, проблема в том, что вы используете baseclass
в derivedclass
, поэтому метод DeleteAll
, приводящий к DerivedClass
, должен иметь как роли «оператора», так и «удаления».
Вы можете попробовать объединить несколько требований PrincipalPermissionAttribute, используя ИЛИ.
Подробности смотрите по ссылке ниже.
PrincipalPermission для метода не работает, если применяется к классу
Как применить ИЛИ в PrincipalPermission в базовом и производном классе