asp.net-mvc - 为什么“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.asax
Application Start 中的代码部分可能会导致问题,但我不确定。
解决方案
网站使用 cookie 在页面请求或浏览会话之间存储信息。
从外部提供商到您的站点的回调包含安全令牌 ( httpCookies
),它允许访问您的站点并包含用户信息。
如果有人设法窃取他人的网站身份验证 cookie,他可以执行他们能够执行的所有操作。
通过 HTTPS 传输此信息以防止在此信息通过 Internet 传输时被拦截,这一点很重要
您可以通过添加一个简单的标志来停止对站点中所有 cookie 的脚本访问:HttpOnly。您可以在 web.config 中设置此标志,如下所示:
<httpCookies domain="" httpOnlyCookies="true" requireSSL="false" />
因此,如果您requireSSL="true"
在Web.config
It Enforcing 外部提供程序中编写,HTTPS
仅使用它们对您的站点进行回调。
@Vishesh Pandita 在您的情况下,您尝试仅使用 HTTP 访问站点。因此面临“HTTP 错误 403 - 403.4 禁止:需要 SSL”错误。这意味着您尝试访问的页面受到安全套接字层 (SSL) 的保护。
解决方案:要查看该页面,您必须通过在您尝试访问的地址的开头键入“https://”而不是“http://”来启用 SSL(安全套接字层)。“https”中的“s”指定安全站点。