ciao, prego!
doppiomango ha scritto:
Purtroppo con i cookie non ho mai lavorato ne ho mai usato le FormsAuthentication di ASP.NET,
Non fa nulla, è un'ottima occasione per provarlo.
E' semplice da mettere in pratica e richiederà pochissime modifiche al codice. Un piccolo prezzo che però ti eviterà di fornire l'id dell'utente in querystring.
Per prima cosa, imposta la forms authentication nel web.config. All'interno del nodo system.web metti questa linea (ma controlla che non ci sia già).
<authentication mode="Forms" />
Immagino che tu abbia già la tua pagina di login. Quella va bene, puoi mantenerla così com'è, devi solo aggiungere questa linea subito dopo aver controllato che lo username e la password digitate dall'utente sono corrette.
//la variabile userName deve contenere il nome utente (o il suo id numerico, se lo preferisci)
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, true);
Finito. Il metodo SetAuthCookie si occuperà di creare, crittografare e inviare al client un cookie di autenticazione che il browser restituirà al server in tutte le sue richieste successive.
Quindi, quando si apre una pagina o viene eseguita una richiesta ajax, tu potrai recuperare il nome dell'utente in questo modo:
var nomeUtenteLoggato = User.Identity.Name;
Così non devi neanche creare variabili di sessione o avere logica personalizzata di riconoscimento dell'utente.
Quando finalmente vuoi disconnettere l'utente, allora chiama:
System.Web.Security.FormsAuthentication.SignOut();
Questo invaliderà il cookie e l'utente risulterà non più autenticato.
Prova, ne vale la pena. Eventualmente prima sperimentalo su un nuovo progetto contenente giusto una pagina di test.
Per approfondire, qui su Aspitalia trovi uno speciale che ti spiega cos'altro puoi fare con la FormsAuthentication.
http://www.aspitalia.com/focuson/640/Speciale-Forms-Authentication-ASP.NET.aspxciao
Modificato da BrightSoul il 17 maggio 2013 23.27 -