2014-02-10 45 views
2

我在ASP中有这种形式的MVC 3MVC 3 - 一个需要防伪标志没有被提供或者是无效的 - Safari浏览器IOS

<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) 
{ 

} 

而在Safari上IOS这总是给我

一个必需的防伪标记不提供或无效

这是浏览器的用户代理

Mozilla/5.0(iPhone; CPU iPhone OS 7_0_3,例如Mac OS X)为AppleWebKit/537.51.1(KHTML,例如Gecko)版本/ 7.0移动/ 11B511 Safari浏览器/ 9537.53

我已经看过了饼干,以及一个用于请求验证令牌设置为2001年1月1日。

任何想法? 谢谢

+0

可能重复:http://stackoverflow.com/questions/14834036/a-required -anti-forgery-token-was-not-supplied-or-was-invalid-safari-only –

+0

我不使用Windows身份验证:)任何其他想法? – Mihai

+0

发现问题:我在那个页面上使用了jquery 1.4.2(出于某种未知的原因:D),那就是搞砸了 – Mihai

回答

-2

选择后,这对我有效。

转到Safari Settings >> Preferences... >> Privacy tab

  1. 单击删除所有网站数据
  2. 选择块饼干作为从不

+1

虽然这可能起作用,但它并不能解决真实世界的情况,因为大多数用户不会禁用这个设置。 Safari的保守cookie政策不允许从第三方域创建cookie,直到用户点击。因此,第一次点击,例如,窗体将始终返回所述错误。 –

相关问题