asp.net-mvc - 为什么 "requireSSL=' true'"抛出 IIS 错误

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

我正在 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 在页面请求或浏览 session 之间存储信息。

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

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

通过 HTTPS 传输此信息以防止在此信息通过 Internet 传输时被拦截

您可以通过添加一个简单的标志来停止脚本访问您站点中的所有 cookie:HttpOnly。你可以设置 这个flag在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

关于asp.net-mvc - 为什么 "requireSSL=' true'"抛出 IIS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56161097/

相关文章:

asp.net-mvc - MVC Homecontroller 在数据库中编辑详细信息

c++ - gSOAP - soap_ssl_client_context() 的参数

SSL 证书在创建当天过期

asp.net - IIS 7、HttpHandler 和 HTTP 错误 500.21

c# - 当我设置 IIS 池的 LoadUserProfile 时到底发生了什么?

asp.net - 不同主机上的表单例份验证

asp.net-mvc - ASP.NET MVC 中的继承布局

asp.net-mvc - 将 KeyValuePair 序列化为 JSON 中的 [Key,Value]

java - Spring Boot Api 休息 SSL

c# - Asp.NET 如何处理多个请求