我正在使用表单身份验证的Asp.net应用程序中工作。在我的web.config上,我已将requiresl属性设置为true。
我一直在进行开发,没有任何问题,但是当我将其部署到测试环境中时,出现了下一个错误:
该应用程序配置为发布安全cookie。这些cookie要求浏览器通过SSL(https协议)发出请求。但是,当前请求不是通过SSL。“
错误发生于
在System.Web.Security.FormsAuthentication.SetAuthCookie中的(字符串userName,布尔值createPersistentCookie,字符串strCookiePath) 在System.Web.Security.FormsAuthentication.RedirectFromLoginPage
所以我的问题是为什么FormsAuthentication.SetAuthCookie通过http设置cookie?以及如何将其设置为通过https?
答案 0 :(得分:2)
我认为您应该配置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