为什么“ requireSSL ='true'”引发IIS错误

时间:2019-05-16 04:57:25

标签: asp.net-mvc ssl iis-7 web-config tls1.2

我正在ASP.NET中的MVC框架上工作,尝试访问该应用程序,但无法通过登录屏幕,此后它一直引发未找到的IIS错误。解决方法之后,我发现我的httpCookies httpOnlyCookies="true" requireSSL="true"文件中有以下行:web.config,正在停止访问。有人可以帮我理解这里的问题和概念吗? 已经谢谢了。

仅删除了requireSSL部分后,我才能访问该网站。

Web配置

httpCookies httpOnlyCookies="true" requireSSL="true"

Global.asax的应用程序开始:

if (ServicePointManager.SecurityProtocol.HasFlag(SecurityProtocolType.Tls12) == false)
{
   ServicePointManager.SecurityProtocol = 
      ServicePointManager.SecurityProtocol | SecurityProtocolType.Tls12;
}

我认为global.asax的“应用程序启动”中的代码部分可能是导致此问题的原因,但我不确定。

1 个答案:

答案 0 :(得分:0)

网站使用Cookie在页面请求或浏览会话之间存储信息。

从外部提供程序到您的站点的回调包含安全令牌(httpCookies),这些令牌允许访问您的站点并包含用户信息。

如果某人设法窃取他人的网站身份验证cookie,则他可以执行他们能够执行的所有操作。

通过HTTPS传输此信息以防止在Internet上传播此信息时很重要

您可以通过添加一个简单的标志HttpOnly来停止对站点中所有cookie的脚本访问。你可以设定 web.config中的此标志,如下所示:

<httpCookies domain="" httpOnlyCookies="true" requireSSL="false" />

因此,如果您在requireSSL="true"中写入Web.config,则会强制外部提供程序仅使用HTTPS对其网站进行回调。

@Vishesh Pandita在您的情况下,您尝试仅使用HTTP访问站点。遇到“ HTTP错误403-403.4禁止访问:必须使用SSL”错误。这意味着您尝试访问的页面已通过安全套接字层(SSL)进行保护。

解决方案: 要查看该页面,必须通过在尝试访问的地址的开头键入“ https://”而不是“ http://”来启用SSL(安全套接字层)。 “ https”中的“ s”指定一个安全站点。

Migration for HTTP to HTTPs

源:Professional ASP.NET MVC 5