我有一个aspx页面正在检查Request.IsSecureConnection以确保它是真的,如果没有它重定向到https://www.domain.com/page.aspx上的安全页面.
服务器为域安装了SSL证书,浏览器显示挂锁图标.
相同的代码在不同的服务器上运行良好,但现在Request.IsSecureConnection始终返回false.
我创建了一个完全空的aspx文件,只打印Request.IsSecureConnection的返回值,它仍然是假的,所以没有其他内容来自标准的http请求.
任何人都可以建议可能导致这种情况的原因,或者给出任何关于我如何找出导致它总是返回false的原因的提示?
我有我在IIS 7.0中托管的应用程序.我必须确保它只在HTTPS上工作而不在HTTP上工作,所以我在root配置中包含了以下规则.
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
</rules>
</rewrite>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问我的应用程序时添加此规则后,我得到以下错误:
页面导致了太多的重定向.清除此站点的cookie或允许第三方cookie可以解决问题.如果没有,它可能是服务器配置问题,而不是您的计算机的问题.以下是一些建议:稍后重新加载此网页.详细了解此问题.
我将 OVH Server 与 SSL Gateway Free 一起使用,我在其中托管了我的 MVC5 应用程序。
当我试图仅强制 HTTPS 连接时,我的浏览器显示:
“ERR_TOO_MANY_REDIRECTS”。
我正在尝试各种事情和解决方案,但没有一个奏效。
我在我的项目属性中启用了 SSL,尝试通过我的 IIS 上的 URL 重写重定向,然后是本教程和许多其他教程,[RequireHttps]在我的BaseController以及Application_BeginRequest()Global.asax 中的许多配置中使用。
铁:
protected void Application_BeginRequest()
{
if (!Context.Request.IsSecureConnection)
{
// This is an insecure connection, so redirect to the secure version
UriBuilder uri = new UriBuilder(Context.Request.Url);
if (!uri.Host.Equals("localhost"))
{
uri.Port = 443;
uri.Scheme = "https";
Response.Redirect(uri.ToString());
}
}
}
Run Code Online (Sandbox Code Playgroud)
不知道如何强制只使用 HTTPS 连接。