【发布时间】:2010-11-24 06:59:52
【问题描述】:
我有一个托管在多个服务器上的 Web 应用程序,其中一些服务器位于 https 上。如果页面当前在 http 或 https 中,我如何从后面的代码中检查?
【问题讨论】:
我有一个托管在多个服务器上的 Web 应用程序,其中一些服务器位于 https 上。如果页面当前在 http 或 https 中,我如何从后面的代码中检查?
【问题讨论】:
您可以参考HttpRequest 类的Request.IsSecureConnection 属性。如需页面、用户控件或类似内容之外的完整参考,请使用HttpContext.Current.Request.IsSecureConnection。
【讨论】:
Page.Request.Url.Scheme
也可以。它返回http、https等。
参考:http://msdn.microsoft.com/en-us/library/system.uri.scheme.aspx
【讨论】:
使用 - HttpContext.Current.Request.IsSecureConnection
【讨论】:
Aspnet Core 2.0 的更新,现在,您应该在控制器中使用 Request.IsHttps。
【讨论】:
Request.Scheme,它应该返回 https 或 http。要么在 Windows 服务器上正常工作,尽管在 Ubuntu IsHttps 和 Request.Scheme 上都说请求对我来说不安全,所以不确定这是错误还是配置错误。
或者:
Request.ServerVariables["SERVER_PROTOCOL"];
【讨论】:
HTTP/1.1,而 Request.IsSecureConnection 按预期返回。
试试这个,
aCookie.Secure = HttpContext.Current.Request.IsSecureConnection
【讨论】:
在 .net 核心中我使用:
Context.Request.Scheme == Uri.UriSchemeHttps
【讨论】: