所需的防伪cookie不存在

时间:2016-02-11 03:56:22

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

我一直看到错误“所需的防伪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>

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

此问题仅发生在移动设备上,因为浏览器中访问的最后一页已缓存(但没有防伪cookie)。我添加了必要的代码,以防止浏览器缓存页面,问题得到解决。