Как я могу проверить метод OnActionExecuting - PullRequest
0 голосов
/ 05 февраля 2019

Как я могу перепроверить, если, когда мой OnActionExecuting возвращает True , он позволяет мне выполнить метод контроллера, в противном случае он отрицает это?

public class SessionExpireAttribute: ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            HttpContext ctx = HttpContext.Current;
            if (2 ==2)
            {
               // throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.OK));
                return (new HttpResponseException(new HttpResponseMessage(HttpStatusCode.OK)));
            }
            else
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized));
                return;
            }
            base.OnActionExecuting(actionContext);
        }

1 Ответ

0 голосов
/ 05 февраля 2019

Я думаю, вам просто нужно установить свойство actionContext.Result перед тем, как покинуть обработчик.Примерно так:

public class SessionExpireAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext actionContext)
    {
        // Adjust this if statement so it's executed hit if your special authentication has *failed*
        if (true)
        {
            actionContext.Result = new HttpUnauthorizedResult("You don't have access to this resource.");
        }

        base.OnActionExecuting(actionContext);
    }
}

Если вы ничего не делаете в обработчике, действие контроллера будет выполняться как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...