我将我的网站发布到我无法控制的IIS服务器上,我想从代码隐藏中了解到,如果它的URL以“http”或“https”开头。
首先,我在我的本地尝试了这两个解决方案,并且都返回了正确的值(“http”):
this.Request.Url.Scheme
Request.IsSecureConnection
可以肯定的是,我还安装了一个安全的SSL连接到我自己的计算机的IIS,并发布了相同的代码。这两个代码也都抓住了正确的值(https)。
但是,当我将其发布到我公司的IIS服务器(使用“https”)时,它将返回“http”。
这里会出现什么问题?我注意到我正在尝试的网址可能不会被视为安全层,即使它以“https”开头(当我从谷歌浏览器调用页面时它没有变为绿色并显示为安全)所以也许它不是一个安全层,它只是常规页面仅以“https”而不是http开头。这种情况可能吗?
答案 0 :(得分:1)
一种可能是您在Web应用程序前面有代理或负载均衡器。它可能会在到达您的网站之前“卸载”SSL。
此外,正如您所指出的,只需在浏览器中指定https即可确保您的SSL证书无法正常运行和配置。尝试使用https://www.ssllabs.com/ssltest/之类的工具来帮助确定问题。