【问题标题】:MVC 3 - A required anti-forgery token was not supplied or was invalid - Safari IOSMVC 3 - 未提供所需的防伪令牌或无效 - Safari IOS
【发布时间】:2014-03-07 20:01:33
【问题描述】:

我在 asp MVC 3 中有这个表单

<form action="/account/changeemail" id="form_changeemail" method="post">
    <%=Html.AntiForgeryToken()%>
    <input  type="email" name="email" id="email" class="required email" />
    <button class="green button" type="submit" id="changeemail">Change</button>
</form>

还有这个动作

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChangeEmail(string email)
{

}

在 IOS 上的 Safari 上,这总是给我

所需的防伪令牌未提供或无效

这是浏览器的用户代理

Mozilla/5.0(iPhone;CPU iPhone OS 7_0_3,如 Mac OS X)AppleWebKit/537.51.1(KHTML,如 Gecko)版本/7.0 Mobile/11B511 Safari/9537.53

我查看了 cookie,请求验证令牌的 cookie 设置为 2001 年 1 月 1 日。

有什么想法吗? 谢谢

【问题讨论】:

  • 我不使用 Windows 身份验证 :) 还有其他想法吗?
  • 发现问题:我在该页面上使用 jquery 1.4.2(出于某种未知原因:D),这搞砸了

标签: asp.net-mvc-3 antiforgerytoken request-validation


【解决方案1】:

选择后这对我有用。

前往 Safari Settings &gt;&gt; Preferences... &gt;&gt; Privacy tab

  1. 点击删除所有网站数据
  2. 选择从不阻止 cookie

【讨论】:

  • 虽然这可能有效,但它确实不能解决现实世界的情况,因为大多数用户不会禁用此设置。在用户点击之前,Safari 的保守 cookie 政策不允许从第三方域创建 cookie。因此,例如,在表单上的第一次点击总是会返回上述错误。
猜你喜欢
  • 2013-01-27
  • 2012-01-25
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
  • 2013-05-25
  • 2011-09-01
  • 2011-02-16
相关资源
最近更新 更多