2009-05-18 18 views
6

Sto cercando di capire come implementare un accesso AJAX per un sito ASP.NET 2.0 con Jquery. Ho già implementato un'altra semplice applicazione Jquery AJAX sul sito, ma non sono sicuro di come convertire il controllo di accesso standard in POST tramite AJAX. Devo esporre i metodi della pagina login.aspx? Qualsiasi aiuto sarebbe grande.ASP.NET 2.0 JQuery AJAX Login

risposta

8

Ecco alcune idee su come questo può essere implementato. Questo non è un codice completo, ma dovrebbe essere sufficiente per iniziare sulla giusta strada.

È necessario creare campi di login per nome utente/password.

Crea un ASMX o WCF WebService per l'autenticazione con un metodo simile a questo:

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

Poi da evento click del pulsante di accesso è possibile utilizzare jQuery Ajax per inserire il nome utente/password per il 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

Dolce. Questo aiuta molto. Ecco un'altra domanda. C'è un modo per memorizzare le informazioni in sessione dal webservice? – GreenEggs

+1

Sì, abilitare semplicemente la sessione nell'attributo WebMethod. [WebMethod (EnableSession = true)] e la sessione di HTTPContext sarà disponibile. –

+0

Fantastico! Questo aiuta una tonnellata !!! Grazie! – GreenEggs

1

Con questa soluzione c'è un grosso problema di sicurezza che nome utente e password verranno inviati in formato di testo normale. quindi dovresti usare SSL o hash questi dati in qualche modo. take a look here