«уведомить» основной метод из ActionFilterAttribute OnActionExecuting - PullRequest
0 голосов
/ 03 апреля 2020

Я изучаю атрибуты и создал один для проверки подлинности.

[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 в метод, который имеет атрибут

...