在基本控制器中设置Http报头

本文关键字:设置 Http 报头 控制器 | 更新日期: 2023-09-27 18:12:14

我试图在网站的每个页面请求上设置Http头。要做到这一点,代码添加头(Response。AppendHeader("p3p", "{HeaderInfoHere}"))被放置在基础控制器的onactionperformed覆盖中(所以当任何操作被调用时,它都会被调用)。

问题是,当一个动作被调用时(所有其他控制器都继承自基控制器),头部会被一遍又一遍地附加,这取决于有多少其他动作(部分视图等)被调用作为初始请求的一部分。

我无法查询响应对象的报头集合-由于IIS集成管道模式在我们的服务器上被禁用(我无法更改),我们得到一个PlatformNotSupported异常,所以我不能直接检查这个报头是否已经添加。

谁能建议一个更好的方法来附加一个头(一次)在MVC的GET请求或工作围绕这种情况?

在基本控制器中设置Http报头

添加数据到你的ControllerContext(可能在RouteData中)注意到你的代码'我已经添加了这个头',你在添加它之前检查它。你也可以尝试使用会话(并且在任何人阻塞之前- TempData已经使用它)

会话可以通过controllerContext.HttpContext.Session

访问