@ Html.AntiForgeryTokenRequestVerificationToken set-cookie标头从响应中丢失

问题描述

我正在使用@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" />