使用ASP.NET MVC进行jQuery Forms身份validation

是否可以使用jQuery ajax调用来执行ASP.NET MVC的表单身份validation? 我一直都找不到这样的例子。

更具体地说,如何在页面上设置auth cookie(没有重定向),以便我可以进行连续的经过身份validation的ajax请求?

是的,这是可能的。 只需使用mike bosch所述的方法提交登录表单,并返回带有returnUrl的json数据结构(如果有的话)。

我创建了一个轻量级的LoginResultDTO类,我以json的forms返回:

public class LoginResultDTO { public bool Success {get;set;} public string Message {get;set;} public string ReturnUrl {get;set;} } 

这是我的LogOn视图中的一个脚本块:

  

这将是ajax包装登录表单。 请注意,这是javascript代码最简单的实现,但它是一个开始的地方。

然后我在AccountController中修改了我的LogOn动作,在相关的地方放了这样的东西:

 if(Request.IsAjaxRequest()) { return Json(new LoginResultDTO{Success=true,Message="Successfully logged in"}); }else { return View(); } 

所以这是一个超级但相当完整的版本,可以在asp.net mvc中完成jquery身份validation。

史蒂夫雷诺兹有一篇关于如何做到这一点的好文章。

链接到文章

看看xVal 。 它可以使用任何客户端validation库,但默认情况下使用jQuery Valiation 。