问题描述
我正在使用@Html.AntiForgeryToken()
保护表单。
当我在本地开发环境中使用表单加载页面时,响应包含以下标头:
set-cookie __RequestVerificationToken=<token>; path=/; HttpOnly
当我在Azure托管环境中加载页面时,此响应标头不存在。如果缺少标题,则将不会在浏览器中设置Cookie,并且在提交表单时验证将失败。
在我的本地环境中,我已经通过IIS Express和IIS进行了HTTP测试。
请告诉我是否可以提供有关本地或Azure环境的更多信息。该网站是使用Umbraco 7构建的,我也使用NWebSec来实施CSP。
解决方法
我通过在Azure环境中的web.config文件中添加以下行来解决此问题:
<httpCookies httpOnlyCookies="true" requiresSSL="true" />