2009-05-18 45 views
6

Tôi đang cố gắng tìm ra cách thực hiện đăng nhập AJAX cho trang ASP.NET 2.0 với Jquery. Tôi đã có một ứng dụng Jquery AJAX đơn giản khác được thực hiện trên trang web, nhưng tôi không chắc chắn làm thế nào để chuyển đổi qua kiểm soát đăng nhập chuẩn sang POST thông qua AJAX. Tôi có nên trưng ra các phương thức trang login.aspx không? Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.ASP.NET 2.0 JQuery AJAX Đăng nhập

Trả lời

8

Dưới đây là một số ý tưởng về cách thực hiện điều này. Đây không phải là mã đầy đủ, nhưng nó sẽ là đủ để giúp bạn bắt đầu đi đúng hướng.

Bạn cần phải tạo các trường biểu mẫu đăng nhập của riêng bạn cho tên người dùng/mật khẩu.

Tạo một ASMX hoặc WCF WebService để xác thực với một phương pháp tương tự như sau:

[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; 
} 

Sau đó, từ sự kiện click nút đăng nhập của bạn, bạn có thể sử dụng jQuery ajax để gửi tên người dùng/mật khẩu để webservice:

$.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 
    } 
}); 
+0

Ngọt. Điều đó giúp ích rất nhiều. Đây là một câu hỏi khác. Có cách nào để lưu trữ thông tin trong phiên từ webservice không? – GreenEggs

+1

Có, chỉ cần bật phiên trong Thuộc tính WebMethod. [WebMethod (EnableSession = true)] và phiên của HTTPContext của bạn sẽ có sẵn. –

+0

Tuyệt vời! Điều đó giúp một tấn !!! Cảm ơn! – GreenEggs

1

Với giải pháp này, vấn đề bảo mật lớn là tên người dùng và mật khẩu sẽ được gửi ở định dạng thuần văn bản. vì vậy bạn nên sử dụng SSL hoặc băm các dữ liệu này theo một cách nào đó. take a look here

Các vấn đề liên quan