簡體   English   中英

使用ASP.NET MVC進行jQuery Forms身份驗證

[英]jQuery Forms Authentication with ASP.NET MVC

是否可以使用jQuery ajax調用來執行ASP.NET MVC的表單身份驗證? 我一直都找不到這樣的例子。

更具體地說,如何在頁面上設置auth cookie(沒有重定向),以便我可以進行連續的經過身份驗證的ajax請求?

是的,這是可能的。 只需使用mike bosch所述的方法提交登錄表單,並返回帶有returnUrl的json數據結構(如果有的話)。

我創建了一個輕量級的LoginResultDTO類,我以json的形式返回:

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

這是我的LogOn視圖中的一個腳本塊:

<script type="text/javascript">
        $(document).ready(function() {
            var form = $($("form")[0]);
            form.submit(function() {
                var data = form.serialize();
                $.post(form.attr("action"), data, function(result, status) {
                    if (result.Success && result.ReturnUrl) {
                            location.href = result.ReturnUrl;
                    } else {
                        alert(result.Message);
                    }
                }, "json");
                return false;
            });
        });
</script>

這將是ajax包裝登錄表單。 請注意,這是javascript代碼最簡單的實現,但它是一個開始的地方。

然后我在AccountController中修改了我的LogOn動作,在相關的地方放了這樣的東西:

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

所以這是一個超級但相當完整的版本,可以在asp.net mvc中完成jquery身份驗證。

史蒂夫雷諾茲有一篇關於如何做到這一點的好文章。

鏈接到文章

看看xVal 它可以使用任何客戶端驗證庫,但默認情況下使用jQuery Valiation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM