ASP.NET 2.0 JQuery AJAX 登录

6

我试图弄清楚如何使用Jquery为ASP.NET 2.0站点实现AJAX登录。我已经在该网站上实现了其他简单的Jquery AJAX应用程序,但我不确定如何将标准登录控件转换为通过AJAX进行POST。我应该公开login.aspx页面的方法吗?任何帮助都将是伟大的。

2个回答

8
以下是如何实现的一些想法。这不是完整的代码,但足以让您朝着正确的方向开始。
您需要为用户名/密码创建自己的登录表单字段。
创建一个类似于以下方法的 ASMX 或 WCF WebService 以进行身份验证:
[WebMethod]
public string AuthenticateUser(string username, string password)
{
    string result = "Invalid Username or Password";
    if(Membership.ValidateUser(userName, password))
    {
        FormsAuthentication.SetAuthCookie(u.UserName, false);
        result = "successful";
    }
    return result;
}

然后从您的登录按钮的单击事件中,您可以使用jQuery ajax将用户名/密码发布到Web服务:

$.ajax({
  type: "POST",
  url: "WebService.asmx/AuthenticateUser",
  data: "{username:"+$('#txtUsername').val()+",password:"+$('#txtPassword').val()+"}",
  success: function(result) {
     alert(result);
    //if(result=='successful')
   // redirectUser to the home page
  }
});

甜。那帮了很大的忙。这里还有一个问题。有没有办法从Web服务中将信息存储在会话中? - GreenEggs
1
是的,只需在WebMethod属性中启用会话。[WebMethod(EnableSession = true)],您的HTTPContext的会话将可用。 - Jose Basilio
另外还可以查看 Sys.Services.AuthenticationService JavaScript 代理类,用于客户端身份验证 - http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Services/AuthenticationServiceClass/default.aspx - Russ Cam

1

使用这种解决方案存在一个很大的安全问题,即用户名和密码将以明文格式发送。因此,您应该使用SSL或以某种方式对这些数据进行哈希处理。 在这里看一下


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接