c# - 设置要求 SSL=true Asp.net 时出错
问题描述
我正在使用表单身份验证的 Asp.net 应用程序工作。在我的 web.config 上,我设置了 requiressl property=true。
我一直在进行开发,没有任何问题,但是当我将它部署到我的测试环境时,我得到了下一个错误:
该应用程序被配置为发布安全 cookie。这些 cookie 要求浏览器通过 SSL(https 协议)发出请求。但是,当前请求不是通过 SSL。”
错误是在
在 System.Web.Security.FormsAuthentication.SetAuthCookie(String userName, Boolean createPersistentCookie, String strCookiePath) 在 System.Web.Security.FormsAuthentication.RedirectFromLoginPage
所以我的问题是为什么 FormsAuthentication.SetAuthCookie 通过 http 设置 cookie?以及如何将其设置为通过 https ?
解决方案
我认为您应该配置您的 IIS 以便为您的站点接受 SSL 连接。
https://docs.microsoft.com/en-us/iis/manage/configuring-security/how-to-set-up-ssl-on-iis
您应该注意,如果您为您的网站激活 SSL,并且如果您没有有效的 SSL 证书,则用户在打开您的网站时会看到警告:继续使用此网站(不推荐)。大多数时候人们不会选择这个选项。
它可以更复杂。对我来说,您应该从提供商处购买 SSL 证书。您应该将它安装在您的服务器上。为了确保您的客户将在 https:// 下浏览您的网站,您应该将任何与您网站的连接重定向到 https://。
这是一个非常有用的链接:
https://www.namecheap.com/support/knowledgebase/article.aspx/9953/38/iis-redirect-http-to-https
推荐阅读
- python - 如何在单行上将单个值附加到由列表理解创建的列表中?
- angularjs - ng-repeat中的ng-click中的AngularJS问题,用单引号传递字符串变量
- c++ - 为什么将此大小变量定义为 const 会导致内存清零?(包括godbolt示例)
- node.js - Firebase 部署引发错误“托管密钥和旧托管密钥都存在于 firebase.json 中。”
- docker - 通过 Ansible 执行 docker-compose pull
- python - __future__ 导入注释不能解决类型提示的循环导入
- javascript - 如何在鼠标悬停在闪亮的网络图中捕获节点名称?
- ios - CIHeightFieldFromMask 输出图像与输入相同
- javascript - Visual Studio 2017 不显示 js 文件的折叠图标
- estimation - R中的嗯估计