【发布时间】:2023-03-10 10:55:01
【问题描述】:
我想在过滤器中记录响应 http 状态代码?我有一个动作过滤器和一个异常过滤器。我可以在异常过滤器中记录 500 个响应。但是我在动作过滤器中得到的响应对象始终是 200,因为当时没有写入响应正文。
我考虑过使用中间件,但我似乎无法在中间件中获取控制器名称和操作名称。有什么建议吗?
【问题讨论】:
标签: asp.net filter action middleware
我想在过滤器中记录响应 http 状态代码?我有一个动作过滤器和一个异常过滤器。我可以在异常过滤器中记录 500 个响应。但是我在动作过滤器中得到的响应对象始终是 200,因为当时没有写入响应正文。
我考虑过使用中间件,但我似乎无法在中间件中获取控制器名称和操作名称。有什么建议吗?
【问题讨论】:
标签: asp.net filter action middleware
我想通了……
var endpoint = httpContext.GetEndpoint();
if (endpoint != null)
{
var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
if (controllerActionDescriptor != null)
{
var controllerName = controllerActionDescriptor.ControllerName;
var actionName = controllerActionDescriptor.ActionName;
}
}
【讨论】: