我已经在我的ASP.NET web项目中实现了reCAPTCHA解决方案(最新版本)。它在我的本地环境中工作得很好,但在我们的SSL加密服务器上,我收到了一条警告消息:“你想只查看安全传送的网页内容吗?这个网页包含不会使用安全HTTPS连接传送的内容,这可能会危及整个网页的安全性。”这只发生在Internet Explorer中。
我在这些论坛和其他论坛上发现,可以将废弃的服务器改为新的https://www.google.com/recaptcha/api(旧的:https://api-secure.recaptcha.net改为新的:https://www.google.com/recaptcha/api),但我并不是直接引用javascript文件,而是使用.net库。
任何帮助都将不胜感激!
发布于 2011-10-20 02:54:16
在浏览the control's source时,该控件具有一个名为OverrideSecureMode的属性,当该属性设置为true时,始终会导致该控件通过HTTPS呈现。
另一方面,The MVC Helper似乎不允许设置该属性。它似乎在使用Context.Request.IsSecureConnection来确定要使用哪个主机名;发现为什么这个值对您来说是错误的,这是解决问题的另一种方法。
发布于 2012-08-09 07:34:06
如上所述,如果MVC Helper正在使用Context.Request.IsSecureConnection,并且您的应用服务器位于一个负载均衡器的后面,该负载均衡器可以拦截HTTPS并作为HTTP转发,那么OverrideSecureMode很可能是false,并且渲染将不安全地发生。
如果在负载均衡器后面,查找原始协议的方法之一是这样做(假设您有权访问X-Forwarded-Proto标头字段)。
bool isSecureConnection = String.Equals(
filterContext.HttpContext.Request.Headers["X-Forwarded-Proto"],
"https",
StringComparison.OrdinalIgnoreCase);https://stackoverflow.com/questions/7826292
复制相似问题