首页 > 解决方案 > 为什么“requireSSL='true'”会引发 IIS 错误

问题描述

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

仅删除 requireSSL 部分后,我就能够访问该站点。

网络配置

httpCookies httpOnlyCookies="true" requireSSL="true"

Global.asax 的应用开始:

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

我认为global.asaxApplication Start 中的代码部分可能会导致问题,但我不确定。

标签: asp.net-mvcssliis-7web-configtls1.2

解决方案


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

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

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

通过 HTTPS 传输此信息以防止在此信息通过 Internet 传输时被拦截,这一点很重要

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

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

因此,如果您requireSSL="true"Web.configIt Enforcing 外部提供程序中编写,HTTPS仅使用它们对您的站点进行回调。

@Vishesh Pandita 在您的情况下,您尝试仅使用 HTTP 访问站点。因此面临“HTTP 错误 403 - 403.4 禁止:需要 SSL”错误。这意味着您尝试访问的页面受到安全套接字层 (SSL) 的保护。

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

从 HTTP 迁移到 HTTP

来源:专业的 ASP.NET MVC 5


推荐阅读