Сохраните пользовательский заголовок в ResponseHeader - PullRequest
0 голосов
/ 23 января 2019

У меня есть все мои контроллеры MVC, унаследованные от базового контроллера, и у него есть метод, который добавляет мой требуемый заголовок в заголовок ответа:

protected override void OnActionExecuted(ActionExecutedContext filterContext)
{    
    filterContext.HttpContext.Response.AddHeader("AdditionaInfo", Environment.MachineName);
}

Это отлично работает в моей локальной среде, но я несм. этот заголовок в ответ, как только я разверну его в Azure.

В ответе я вижу другие стандартные заголовки, такие как:

Cache-Control: private, s-maxage = 0

Кодировка содержимого: gzip Длина содержимого: 122 Тип содержимого: application / json;charset = utf-8

Дата: Сервер: Microsoft-IIS / 10.0

Strict-Transport-Security: max-age = 300

Варьируется: Accept-Encoding

X-AspNet-версия: 4.0.30319

X-AspNetMvc-версия: 5.2

X-Powered-By: ASP.NET

Просто в ответе отсутствует мой заголовок.

Нужно ли что-то настраивать в Azure?Или это способ добавления заголовка, который вызывает проблему?

1 Ответ

0 голосов
/ 23 января 2019

Я бы посоветовал перенести код в 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();
}
...