我的项目功能中有2个cookie响应:
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
_httpContext.Response.Cookies.Add(cookie);
var cookie_new=new HttpCookie(new HttpCookie("test","vote"));
_httpContext.Response.Cookies.Add(cookie);
该项目正在用于用户授权,但是当我使用第一个将AJAX [type ='post']发送给某个动作的cookie时,我发错了msg说
“未提供所需的防伪令牌或无效。”。
然而另一个是成功。 我不明白问题是什么。
答案 0 :(得分:0)
必须将ValidateAntiForgeryToken属性添加到控制器中的操作,如下所示:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MyAction()
{
...
}
但您还必须在表单上提供一个控件,通过添加以下内容来保存View中的防伪标记:
@Html.AntiForgeryToken()
如果您检查了渲染视图的页面来源,那么您应该会在隐藏的__RequestVerificationToken
中看到input
及其值。