如何检查 HttpContext.Current.Response 是不是有现有的 Header?

Posted

技术标签:

【中文标题】如何检查 HttpContext.Current.Response 是不是有现有的 Header?【英文标题】:How to check if HttpContext.Current.Response have an existing Header?如何检查 HttpContext.Current.Response 是否有现有的 Header? 【发布时间】:2012-06-21 13:27:51 【问题描述】:

我正在处理一个必须向响应标头添加标头的方案。

我添加了一个这样的响应标头:- HttpContext.Current.Response.AddHeader("key1", "value1")

经过一些功能流程后,我需要为相同的 "key1" 添加价值:HttpContext.Current.Reponse.AddHeader("key1, "value2")

因此响应标头中的值如下所示:- key1 : value1, value2

我想避免将 value2 添加到同一关键字 key1

如何解决这个问题?

我试过了:-

If HttpContext.Current.Response.Headers("key1") Then
    HttpContext.Current.Reponse.AddHeader("key1, "value2")
EndIf

但我得到了错误:此操作需要 IIS 集成管道模式HttpContext.Current.Response.Headers("key1")

我正在运行 IIS6。 这个http://forums.asp.net/post/2676139.aspx 说如果不是 IIS7,它就不起作用

如果我可以在 IIS6 中做到这一点,请提供帮助。谢谢,

【问题讨论】:

重复***.com/questions/6269261/response-headers-and-iis6 【参考方案1】:

您可以使用此行检查它是否有键

HttpContext.Current.Response.Headers.HasKeys()

所以在你的例子中你会这样做

If Not HttpContext.Current.Response.Headers.HasKeys() Then
    HttpContext.Current.Reponse.AddHeader("key1, "value2")
EndIf

希望对你有帮助

【讨论】:

HttpContext.Current.Response.Headers 它自己正在抛出“此操作需要 IIS 集成管道模式”异常。所以它不会去到 HasKeys 好吧,我猜你可以配置 IIS,这里有一个教程msdn.microsoft.com/en-us/library/cek8kw6e.aspx

以上是关于如何检查 HttpContext.Current.Response 是不是有现有的 Header?的主要内容,如果未能解决你的问题,请参考以下文章

HttpContext.Current并非无处不在

Web API 服务 - 如何在异步任务中使用“HttpContext.Current”

WindowsIdentity winId = (WindowsIdentity)HttpContext.Current.User.Identity;如何使这个演员工作;目前它失败了

await 将 HttpContext.Current 设置为 null/prior - 无法手动设置

HttpContext.Current并非无处不在

路由请求时 HttpContext.Current.Session 为空