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

也可以。它返回httphttps等。

参考: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,它应该返回 httpshttp。要么在 Windows 服务器上正常工作,尽管在 Ubuntu IsHttpsRequest.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的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 修改密码的对话框

Asp.Net Core Razor 页面网站非常慢

确定页面在 JavaScript 中是不是有效 - ASP.NET

在 Asp.Net Core 的 Razor 页面中检查登录用户授权策略

.NET 3.5/VS 2008 上 ASP.NET Web 服务的自定义 HTTP 基本身份验证

能够在 ASP.NET 中包含文件,但不检查它是不是存在