我们的Web应用程序位于负载均衡器后面,该负载均衡器执行SSL卸载,在尝试使用web.config中的httpcookie元素时会导致问题。由于我们的网站在http下运行,因此IIS或ASP.Net会从所有cookie中删除安全标记。
当使用普通ASP.Net时,我可以通过将以下代码添加到Global.asax来强制所有cookie进行HttpOnly和Secure
void Application_EndRequest(object sender, EventArgs e)
{
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
Response.Cookies[s].Secure = true;
Response.Cookies[s].HttpOnly = true;
}
}
}
但由于某些原因,这在纯WebApi应用程序中不起作用,我们没有提供任何网页,也没有Global.asax文件。
有没有办法可以使用MessageHandler或类似的东西来做到这一点?