情况:
负载均衡的环境,其中SSL在LB上终止,并且其下面的所有流量都是HTTP。我们有要求用户进行身份验证的页面,我们还要求身份验证cookie带有标记" secure"。整个网站必须在SSL下运行。
我想在我的本地机器上模拟实时环境,即我想配置"安全" HTTP连接下的cookie。 Sofar,我设法达到了:
Request.IsSecureConnection == true;
Request.ServerVariables["HTTPS"] == "on";
我是通过在IIS中手动添加https变量来实现这一点的:
<rewrite>
<rules>
<rule name="HTTPS_Always_ON" patternSyntax="Wildcard">
<match url="*" negate="false" />
<serverVariables>
<set name="HTTPS" value="on" />
</serverVariables>
<action type="None" />
</rule>
</rules>
</rewrite>
问题是我仍然无法在HTTP下读取身份验证cookie。我必须明确切换到https连接。
是否可以欺骗asp.net在http连接下读取安全cookie?如果是这样,那我该怎么办?
更新:我的帖子描述了问题,但并不完全正确。浏览器不会发送标记为&#34; secure&#34;通过HTTP,所以没有办法直接测试我的代码。我需要模拟负载均衡器,它终止SSL并通过HTTP将所有流量转发到实际的Web服务器。您似乎可以在一台机器上执行此操作而不会遇到重大困难。
答案 0 :(得分:1)
问题不在于ASP.NET应用程序,而在于浏览器通过HTTP永远不会发送安全cookie。我仍然需要在本地计算机上模拟负载均衡器的行为,这是解决方案:
答案 1 :(得分:0)
如果您可以阅读http下的https内容,互联网将陷入困境!我不认为你走在正确的轨道上。
相反,你能够: - 将自签名证书安装到本地计算机 - 在HTTPS下完全运行测试,就像服务器一样 - 只是没有负载均衡器等网络基础设施。