ASP.net 检查页面是 http 还是 https
Posted
技术标签:
【中文标题】ASP.net 检查页面是 http 还是 https【英文标题】:ASP.net check if page is http or https 【发布时间】:2010-11-24 06:59:52 【问题描述】:我有一个托管在多个服务器上的 Web 应用程序,其中一些服务器位于 https 上。如果页面当前在 http 或 https 中,我如何从后面的代码中检查?
【问题讨论】:
【参考方案1】:您可以参考HttpRequest
类的Request.IsSecureConnection
属性。如需页面、用户控件或类似内容之外的完整参考,请使用HttpContext.Current.Request.IsSecureConnection
。
【讨论】:
当心- IsSecureConnection 可能会给出假阴性。 ***.com/questions/998397/… 答案有点老了,所以现在,对我来说,它有点改变了 owin。我通过“System.Web.HttpContext.Current.GetOwinContext().Request.IsSecure”获得了值。可能这对以后的某个人来说很方便。 :)【参考方案2】:Page.Request.Url.Scheme
也可以。它返回http
、https
等。
参考:http://msdn.microsoft.com/en-us/library/system.uri.scheme.aspx
【讨论】:
【参考方案3】:使用 - HttpContext.Current.Request.IsSecureConnection
【讨论】:
【参考方案4】:Aspnet Core 2.0 的更新,现在,您应该在控制器中使用 Request.IsHttps
。
【讨论】:
从 NET Core 2.2 开始,您可以使用Request.Scheme
,它应该返回 https
或 http
。要么在 Windows 服务器上正常工作,尽管在 Ubuntu IsHttps
和 Request.Scheme
上都说请求对我来说不安全,所以不确定这是错误还是配置错误。【参考方案5】:
或者:
Request.ServerVariables["SERVER_PROTOCOL"];
【讨论】:
这会在 http 和 https 上为我返回HTTP/1.1
,而 Request.IsSecureConnection
按预期返回。【参考方案6】:
试试这个,
aCookie.Secure = HttpContext.Current.Request.IsSecureConnection
【讨论】:
【参考方案7】:在 .net 核心中我使用:
Context.Request.Scheme == Uri.UriSchemeHttps
【讨论】:
以上是关于ASP.net 检查页面是 http 还是 https的主要内容,如果未能解决你的问题,请参考以下文章
确定页面在 JavaScript 中是不是有效 - ASP.NET
在 Asp.Net Core 的 Razor 页面中检查登录用户授权策略