【问题标题】:The required anti-forgery cookie is not present所需的防伪 cookie 不存在
【发布时间】:2016-06-03 07:16:35
【问题描述】:

我不断看到错误“所需的防伪 cookie “__RequestVerificationToken_L3N0dWRlbnQ1”不存在。”在我的 ELMAH 日志中,但我自己无法重现该错误。

我的控制器动作如下所示:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SignIn(LoginModel loginModel)

我的看法是这样的:

@using (Html.BeginForm("SignIn", "Home", "", FormMethod.Post, new { @class = "form-inline LoginForm" }))
{
    @Html.AntiForgeryToken()
    ...
}

ELMAH 日志表明已发布以下表单项:

<form>
   <item name="__RequestVerificationToken">
      <value string="UjQsZ1QB4ryA-e0RleFb7f0ORB9QPbsJrzoXn6D8XiqN9CEGysiVC94Ark4FnAFfx3C2eAG5KhAiVlP8nob8xkCg2k_8oUyLYwDmR39qu8g1"/>
   </item>
   ...
</form>

但是唯一存在的 cookie 是 ASP.NET 会话 cookie

<cookies>
   <item name="ASP.NET_SessionId">
      <value string="d4rlkdgp1ot2gpcmjtirfym1"/>
   </item>
</cookies>

我还注意到帖子中有一个我没有明确设置的查询字符串值。

<queryString>
   <item name="Length">
      <value string="0"/>
   </item>
</queryString>

有什么想法吗?

【问题讨论】:

    标签: asp.net asp.net-mvc cookies


    【解决方案1】:

    这个问题只发生在移动设备上,因为在浏览器中访问的最后一个页面被缓存了(但没有防伪 cookie)。我添加了必要的代码来防止浏览器缓存页面,问题就解决了。

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 2021-07-09
      • 2015-11-30
      • 1970-01-01
      • 2020-01-24
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多