ASP.NET Request.ServerVariables [“SERVER_PORT_SECURE”]和负载均衡器代理SSL

时间:2010-03-11 19:34:53

标签: asp.net iis ssl https load-balancing

我们有一些遗留的ASP.NET代码可以检测请求是否安全,并在需要时重定向到页面的https版本。

此代码使用 Request.ServerVariables [“SERVER_PORT_SECURE”] 来检测是否需要SSL。

我们的运营团队已建议在负载均衡器(F5 Big-IP)上而不是在Web服务器上执行代理SSL(假设出于此问题的目的,这是一项要求)。< / p>

结果是所有请求都显示为Web服务器的HTTP。

我的问题:如何让Web服务器知道传入连接在到达负载均衡器之前是否安全?我们可以继续使用 Request.ServerVariables [“SERVER_PORT_SECURE”] 吗?

您是否知道将发送标头的负载均衡器配置,以便不需要更改应用程序代码?

1 个答案:

答案 0 :(得分:2)

使用 iRule 有效地将自定义元素添加到HTTP标头,然后通过Request.Headers在ASP.NET代码中检测它。深入了解Request.Headers对象的集合以及您的F5硬件可能已经在其中一个HTTP标头上标记了自己。