Tenendo userid in ASP.net
Domanda
Sto usando ASP.net per lo sviluppo di un sito web intranet. Ho bisogno di tenere l'userid su tutti i postback per tutte le pagine del sito web. È consigliabile tenere quelle informazioni in sessione o somether modo è disponibile.
Soluzione
Se si utilizza autenticazione basata su form, quindi il nome utente sarà disponibile come:
Page.User.Identity.Username
Se avete bisogno di tenere un altro pezzo di informazione alongisde questo, quindi utilizzare sessione.
PS. Mi consiglia di utilizzare una classe per avvolgere le variabili di sessione per una forte-typedness e potenziali valori di default.
Altri suggerimenti
FormsAuthentication è anche in grado di contenere un userid personalizzato, e risolve un sacco di cose per voi come impostazione il cookie, pagina di login reindirizzamento etc.
È possibile impostare l'ID utente utilizzando il RedirectFromLoginPage metodo e poi utilizzare il FormsAuthentication_OnAuthenticate evento di trovare e impostare la proprietà Page.User, per accedere a tutti l'altra logica è necessario.
I modi più comuni di fare questo si utilizza sia la sessione ASP.NET oggetto o utilizzando i cookie.
In entrambi i casi funziona bene, ma se lo si desidera per le loro informazioni utente a persistere anche dopo che la sessione è scaduta (come ad esempio la chiusura di una finestra del browser), allora si potrebbe voler esaminare i cookie. informazioni di sessione sarà smaltito con la chiusura di un browser, oppure è stato raggiunto il timeout di attività.