如何实现客户端AJAX登录上Asp.Net MVC(A链接到解决方案Asp.Net Web表单在这里

2019-09-21 14:51发布

我试图落实Asp.Net MVC客户端AJAX登录。 我曾经有过这种建立在的WebForms就好了,但现在我已经搬到了MVC它给了我一些麻烦。

如果您想在客户端AJAX登录Asp.Net Web表单的教程,可以发现这里 -简单,A ++

现在...由于某种原因,它不是Asp.Net MVC工作。

我用完全相同的教程作为Web表单,当它执行除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阿贾克斯拉向您展示的功能:

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]);
}

任何人都有的,为什么它的失败什么想法?

Answer 1:

比它需要你在做这更复杂。 所有你需要做的就是打电话给你的账户/登录方法与AJAX调用。 你并不需要身份验证服务的复杂性,虽然你可能要检测是否要通过AJAX登录并返回JSON,而不是一个视图。

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...
}


文章来源: How to implement a Client-side Ajax Login on Asp.Net MVC (A link to the solution for Asp.Net Webforms is in here)