因此,我将它放在我的Global.asax.cs中,以便使用HSTS强制HTTPS。
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (!Request.IsLocal && AppSettings.IsSSLEnforced)
{
switch (Request.Url.Scheme)
{
case "https":
Response.AddHeader("Strict-Transport-Security", "max-age=300");
break;
case "http":
var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", path);
break;
}
}
}现在,问题是这种强制执行是基于my中的一个设置,该设置决定它是否被强制执行,并且当它被设置为不强制时,它仍然在强制执行。我怎样才能让它清除并停止重定向?
我试着在里面加了一个
Response.AddHeader("Strict-Transport-Security", "max-age=0");将最大年龄设置为0无效。我该怎么移除它?它似乎也是最大年龄不工作(我正在使用铬),因为它已经远远超过300秒(5分钟)。
编辑:我现在尝试加载在IE和它不做重定向,我尝试进入铬设置和删除条目,但仍然什么都没有。
发布于 2015-07-24 04:38:43
一旦将HSTS报头发送到用户浏览器,它将始终使用https。它是每个域指定的,也可以是可选的加子域。
一旦浏览器访问了您的域并接收到HSTS报头,它将始终使用https (它是强制的)。现在,您不能通过服务器响应取消它。
因此,当您域中的所有资源都可以通过https服务时,最好在(WAF)级别上添加HSTS和重定向报头,并且只在上使用。
https://www.chromium.org/hsts/ https://blog.cloudflare.com/enforce-web-policy-with-hypertext-strict-transport-security-hsts/
https://stackoverflow.com/questions/30510613
复制相似问题