簡體   English   中英

如何在Asp.Net MVC上實現客戶端Ajax登錄(Asp.Net Webforms解決方案的鏈接在這里)

[英]How to implement a Client-side Ajax Login on Asp.Net MVC (A link to the solution for Asp.Net Webforms is in here)

我正在嘗試在Asp.Net MVC上實現客戶端ajax登錄。 我以前在WebForms上設置得很好,但是現在我已經轉移到MVC了,它給了我一些麻煩。

如果你想要一個關於Asp.Net Webforms的客戶端Ajax登錄的教程,可以在這里找到 - Easy,A ++

現在......出於某種原因,它不適用於Asp.Net MVC。

我使用與ssa.login()完全相同的教程,除非它執行ssa.login() (相當於: Sys.Services.AuthenticationService.login() )它沒有做任何事情。

我在onLoginComplete()函數和onError()函數中都有警報。 同樣,我在ssa.login被調用之前有一個警報,然后......

function loginHandler() {
    var username = $("#login_UserName").val();
    var password = $("#login_Password").val();
    var isPersistent = $("#login_RememberMe").attr("checked");
    var customInfo = null;
    var redirectUrl = null;
    // Log them in.
    alert("try login");
    ssa.login(username,
                      password,
                      isPersistent,
                      customInfo,
                      redirectUrl,
                      onLoginComplete,
                      onError);
    alert("made it here");
}

第一個警報觸發但第二個警報觸發,這意味着該功能失敗。
這是我從Asp.Net Ajax中提取的函數向您展示:

function(c, b, a, h, f, d, e, g) {
    this._invoke(this._get_path(), "Login", false, { userName: c, password: b, createPersistentCookie: a }, Function.createDelegate(this, this._onLoginComplete), Function.createDelegate(this, this._onLoginFailed), [c, b, a, h, f, d, e, g]);
}

任何人都知道為什么會失敗?

你使它變得比它需要的更復雜。 您需要做的就是使用AJAX調用調用您的帳戶/登錄方法。 您不需要驗證服務的復雜性,但您可能想要檢測是否通過AJAX登錄並返回JSON而不是View。

function loginHandler() {
    var username = $("#login_UserName").val();
    var password = $("#login_Password").val();
    var isPersistent = $("#login_RememberMe").attr("checked");
    var customInfo = null;
    var redirectUrl = null;
    // Log them in.
    alert("try login");
    $.ajax( {
       url : '<%= Url.Action( "Login", "Account" ) %>',
       type: 'post',
       dataType: 'json',
       data: { username: username,
               password: password,
               isPersistent: isPersistent,
              },
       success: onLoginComplete,
       error: onError
    });
    alert("made it here");  // this will execute before the callback completes...
}

暫無
暫無

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

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