我有一个网络应用程序,托管在多个服务器上,其中一些服务器使用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
Aspnet Core 2.0有更新,现在你应该在控制器内使用Request.IsHttps
。
Request.Scheme
,它应该返回https
或http
。在Windows服务器上,两者都可以正常工作,尽管在Ubuntu上,IsHttps
和Request.Scheme
都显示请求不安全,因此不确定这是否是错误或配置错误。 - Robin WilsonHttpContext.Current.Request.IsSecureConnection
。此代码可用于检查当前请求是否使用安全连接(HTTPS)。或者:
Request.ServerVariables["SERVER_PROTOCOL"];
HTTP/1.1
,而Request.IsSecureConnection
则如预期返回。 - atheaosIn .net core I use:
Context.Request.Scheme == Uri.UriSchemeHttps
试试这个,
aCookie.Secure = HttpContext.Current.Request.IsSecureConnection