【发布时间】:2011-12-19 07:37:14
【问题描述】:
我使用AntiForgeryToken处理多个表单提交,代码如下
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var ctx = filterContext.HttpContext;
var response = filterContext.HttpContext.Response;
var request = filterContext.HttpContext.Request;
string _antiForgToken = request.Form.GetValues("__RequestVerificationToken")[0];
if (ctx.Session["userform"] != null)
{
if (_antiForgToken.Equals(ctx.Session["userform"].ToString()))
{
//kill the request
response.StatusCode = 400;
response.StatusDescription = "Bad Request.";
}
}
else
ctx.Session["userform"] = _antiForgToken;
}
代码在(普通)表单上运行良好,但当表单通过 ajax 多次发布时会出现问题(这是必需的功能)我有一个表单,例如 Add Contacts 用户添加联系人 @987654324 @ 并按回车键(ajax)请求正常完成,但再次以相同的形式用户选择电子邮件并在此处按回车我收到错误,因为AntiforgeryToken 与之前生成的相同,我的问题是如何刷新AntiForgeryToken ajax 成功
【问题讨论】:
-
@KhumeshKumawat 这不是同一个问题
标签: jquery asp.net ajax asp.net-mvc forms