我在服务器上托管了 asp.net 应用程序,有什么方法可以确定用户是来自 HTTPS 还是 HTTP,我已经尝试过 URL 引用,但似乎它不适用于从 HTTPS 到 HTTP 的请求。
请提出一些出路?
我在服务器上托管了 asp.net 应用程序,有什么方法可以确定用户是来自 HTTPS 还是 HTTP,我已经尝试过 URL 引用,但似乎它不适用于从 HTTPS 到 HTTP 的请求。
请提出一些出路?
你有没有尝试过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
您是否需要这个来强制使用 HTTPS?您可能想查看这个答案 - ASP.NET: best practice for redirecting to https
我正在使用 URL Rewrite 答案取得了巨大成功。
标Referrer
头有点不可靠,没有明确指定。但是,如果原始页面是通过 https 提供的,大多数客户端将不会填充标头。这并不意味着您可以假设一个空标题意味着它来自 https,因为还有其他原因可能导致他们没有填写它,但它是一个指标。