【发布时间】:2013-08-13 06:52:47
【问题描述】:
我在服务器上托管了 asp.net 应用程序,有什么方法可以确定用户是来自 HTTPS 还是 HTTP,我已经尝试过 URL 引用,但似乎它不适用于来自 HTTPS 到 HTTP 的请求。
请提出一些出路?
【问题讨论】:
-
如果我错了,请纠正我,但我相信您不能信任 HTTP 标头,因为客户端可能会指定它想要的内容。
标签: url
我在服务器上托管了 asp.net 应用程序,有什么方法可以确定用户是来自 HTTPS 还是 HTTP,我已经尝试过 URL 引用,但似乎它不适用于来自 HTTPS 到 HTTP 的请求。
请提出一些出路?
【问题讨论】:
标签: url
您是否需要这个来强制使用 HTTPS?你可能想看看这个答案 - ASP.NET: best practice for redirecting to https
我使用 URL Rewrite 答案取得了巨大成功。
【讨论】:
Referrer 标头有点不可靠,并且没有明确指定。但是,如果原始页面是通过 https 提供的,大多数客户端将不会填充标头。这并不意味着您可以假设一个空的标头意味着它来自 https,因为他们可能没有填写它还有其他原因,但它是一个指标。
【讨论】:
你试过Request.UrlReferrer
Uri MyUrl = Request.UrlReferrer;
Response.Write("Referrer URL Port: " + Server.HtmlEncode(MyUrl.Port.ToString()) + "<br>");
Response.Write("Referrer URL Protocol: " + Server.HtmlEncode(MyUrl.Scheme) + "<br>");
参考 http://msdn.microsoft.com/en-us/library/system.web.httprequest.urlreferrer.aspx
也看看这个..
http://www.codeproject.com/Questions/104895/Is-there-any-alternative-for-UrlReferrer-and-HTTP_
还有这个 http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.referer.aspx
【讨论】: