未提供所需的防伪标记或无效

问题描述:

@using (Html.BeginForm("Create", "Posts", FormMethod.Post, new { id = "publish" })) 
{ 
    @Html.AntiForgeryToken("Posts/Create") 
    <input type="text" id="url" name="url" /> 
    <input type="submit" value="@Html.Resource("Publish")" /> 
} 

[HttpPost] 
[ValidateAntiForgeryToken] 
public JsonResult Create(string url) 
{ 
    // stuff that's never reached 
} 

我无法意识到使这个简单的表单无法验证CSRF令牌。 我该如何调试?未提供所需的防伪标记或无效

更新

如果我删除了食盐,它的工作原理;奇怪的是它曾经与Salt合作过,我无法弄清楚为什么它不再存在。

如果你想使用你有盐将它传递给ValidateAntiForgeryToken滤清器过:

[HttpPost] 
[ValidateAntiForgeryToken(Salt = "Posts/Create")] 
public JsonResult Create(string url) 
{ 
    ... 
+0

我不知道为什么它不前扔。谢谢,就是这样。 – bevacqua 2012-02-20 02:46:37