代码之家  ›  专栏  ›  技术社区  ›  PM.

在ResponseHeader中保留自定义标头

  •  0
  • PM.  · 技术社区  · 7 年前

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

    这在我的本地环境中运行良好,但一旦我将其部署到Azure,我就看不到该标头的响应。

    我可以在响应中看到其他标准标题,如:

    内容编码:gzip 内容长度:122内容类型:application/json;字符集=utf-8

    日期:服务器:Microsoft IIS/10.0

    改变:接受编码

    X-AspNet-Version:4.0.30319

    X-AspNetMvc-Version:5.2

    只是我的标题在回复中丢失了。

    我需要在Azure中配置一些东西吗?或者是添加标题的方式导致了问题?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Simply Ged Saeed    7 年前

    我会考虑将代码移到中间件而不是过滤器(这是我假设您正在基于 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();
    }