我正在尝试配置我的环境,使身份验证 cookie 只能通过 HTTPs 访问(保护它免受 XSS 攻击)。我阅读了几篇文章并得出结论,我应该将 requireSSL 属性设置为“true”
<authentication mode="Forms">
<forms name="someName" loginUrl="~/login" timeout="40" protection="All" slidingExpiration="true" defaultUrl="~/index" requireSSL="true" />
</authentication>
问题是,当我尝试设置身份验证 cookie 时,它会引发异常。
FormsAuthentication.SetAuthCookie(username, false);
例外:
该应用程序被配置为发布安全 cookie。这些 cookie 要求浏览器通过 SSL(https 协议)发出请求。但是,当前请求不是通过 SSL。
堆栈跟踪:
System.Web.HttpException:应用程序配置为发出安全 cookie。这些 cookie 要求浏览器通过 SSL(https 协议)发出请求。但是,当前请求不是通过 SSL。
在 System.Web.Security.FormsAuthentication.SetAuthCookie(字符串用户名,布尔 createPersistentCookie,字符串 strCookiePath)
问题出现在我的本地机器上(即使它被配置为 HTTPs 访问)和实时服务器(也在 HTTPs 上)
谁能帮我解决这个问题?谢谢。