C# 如何过滤短路请求管道?
我不熟悉ASP.NET核心MVC,只是一个关于如何过滤短路请求管道的问题。我知道设置过滤器的context.Result将绕过/短路请求管道。下面是我课本上的一个小屏幕: 假设在操作筛选器中有以下语句:C# 如何过滤短路请求管道?,c#,asp.net-core,asp.net-core-mvc,C#,Asp.net Core,Asp.net Core Mvc,我不熟悉ASP.NET核心MVC,只是一个关于如何过滤短路请求管道的问题。我知道设置过滤器的context.Result将绕过/短路请求管道。下面是我课本上的一个小屏幕: 假设在操作筛选器中有以下语句: public void OnActionExecuting(ActionExecutingContext context) { context.Result = new StatusCodeResult(StatusCodes.Status403Forbidden); } 我的问题是:
public void OnActionExecuting(ActionExecutingContext context)
{
context.Result = new StatusCodeResult(StatusCodes.Status403Forbidden);
}
我的问题是:
Q1这意味着动作方法将不会被调用,但它实际上是如何发生的,必须有一个sth检查context.Result
以确定是否应该调用动作方法。这是什么东西
问题2-请求短路后,结果过滤器是否仍然适用
Q3-如果结果筛选器不适用,如何调用IActionResult执行?这清楚地表明设置
结果
会使操作和管道短路,使其他操作筛选器无法运行:
IResultFilter
或IAsyncResultFilter
,在您的示例中,这是真的。如果您的操作方法或操作筛选器出现异常,则不会调用它们。见: