Как правильно регистрировать http-код ответа в ASP.NET Фильтры CORE 3.1?

#asp.net #filter #action #middleware

#asp.net #Фильтр #Экшен #промежуточное программное обеспечение

Вопрос:

Я хочу зарегистрировать http-код состояния ответа в фильтрах? У меня есть фильтр действий и фильтр исключений. Я могу зарегистрировать 500 ответов в фильтре исключений. однако объект ответа, который я получаю в фильтре действий, всегда равен 200, потому что в это время тело ответа не записывается.

Я думал об использовании промежуточного программного обеспечения, однако, похоже, я не могу получить имя контроллера и название действия в промежуточном программном обеспечении. Есть предложения?

Ответ №1:

Я понял это…

                 var endpoint = httpContext.GetEndpoint();
            if (endpoint != null)
            {
                var controllerActionDescriptor = endpoint.Metadata.GetMetadata<ControllerActionDescriptor>();
                if (controllerActionDescriptor != null)
                {
                    var controllerName = controllerActionDescriptor.ControllerName;
                    var actionName = controllerActionDescriptor.ActionName;
                }
            }