在OnActionExecuting的override方法中读取contex.Result()的状态

时间:2018-05-14 10:38:53

标签: c# .net-core asp.net-mvc-filters

我正在重写OnActionExecuting方法,以便在调用某些控制器的方法之前执行一些检查,我想知道是否有任何方法可以读取context.Result()值以检查它是否等于 - 例如 - 状态401未经授权或类似,以便对不同的状态执行不同的操作,例如......

public override void OnActionExecuting(ActionExecutingContext context) {
    base.OnActionExecuting(context);
    if (/*context.Result()==401*/)
    {
        //do things
    }
    else
    {
        //do other things
    }
}

有没有办法读取context.Result()值/状态才能在if()语句中使用它?

1 个答案:

答案 0 :(得分:3)

您可以与Response.StatusCode进行比较:

if(context.HttpContext.Response.StatusCode == (int)System.Net.HttpStatusCode.Unauthorized)
{
    //Rest of code goes here
}