Сохраните пользовательский заголовок в ResponseHeader
У меня есть все мои контроллеры MVC, наследуемые от базового контроллера, и у него есть метод, который добавляет мой требуемый заголовок в заголовок ответа:
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.HttpContext.Response.AddHeader("AdditionaInfo", Environment.MachineName);
}
Это хорошо работает в моей локальной среде, но я не вижу этот заголовок в ответ, как только разверну его в Azure.
Я вижу другие стандартные заголовки в ответе:
Cache-Control: приватный, s-maxage = 0
Content-Encoding: gzip Content-Length: 122 Тип содержимого: приложение /json; кодировка = UTF-8
Дата: Сервер: Microsoft-IIS/10.0
Строгая транспортная безопасность: max-age=300
Варьируется: Accept-Encoding
X-AspNet-версия: 4.0.30319
X-AspNetMvc-версия: 5.2
X-Powered-By: ASP.NET
Просто мой заголовок отсутствует в ответе.
Нужно ли что-то настраивать в Azure? Или это способ добавления заголовка, который вызывает проблему?
1 ответ
Я бы посоветовал перенести код в Middleware, а не в фильтр (именно здесь я предполагаю, что вы делаете это на основе OnActionExecuted
название метода).
Вы можете сделать это простым способом в startup.cs
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// other code here
app.Use(async (context, next) =>
{
context.Response.Headers.Add("AdditionalInfo", Environment.MachineName);
await next.Invoke();
});
// additional code here
app.UseMvc();
}