Я изучаю атрибуты и создал один для проверки подлинности.
[AttributeUsage(AttributeTargets.Method)]
public class Permission : ActionFilterAttribute
{
private string name;
public Permission()
{
}
public Permission(string name)
{
this.name = name;
}
public Permission(string name, int level)
{
this.name = name;
Permissions.AddPermission(name, level);
}
public override void OnActionExecuting(ActionExecutingContext context)
{
context.HttpContext.Session.LoadAsync();
int? perm = context.HttpContext.Session.GetInt32("perm");
if (!perm.HasValue) throw new NotLoggedInException();
if (Permissions.GetPermissionLevel(name) > perm) throw new InvalidOrMissingPermissionException();
}
}
Это работает, однако я по какой-то причине ожидал возведения исключений в метод "main" (тот, который будет выполняться после этого), но это не так.
Есть ли способ сообщить «основному» методу о результатах OnActionExecuting? Мне все равно, если он не использует исключения.
Редактировать: чтобы уточнить, что я пытаюсь заархивировать, это передать некоторые значения из OnActionExecuted в метод, который имеет атрибут