mercoledì 13 luglio 2011

Estensioni forme di autenticazione

Pubblicato da Jonathan Allen su 12 Luglio 2011

Normalmente portiamo la tua quadri grandi e complessi che, anche se si potrebbe costruire da solo, probabilmente non vorrebbe. Ma a volte una semplice libreria po 'con solo un paio di classi possono fare la differenza. Un esempio è un progetto chiamato FormsAuthenticationExtensions.

Anche con quadri moderni come MVC 3, il venerabile Forms Authentication è ancora il modello di sicurezza raccomandate per i siti web pubblici di fronte. Quando combinato con i fornitori di appartenenza e ruolo è facile da configurare e ma anche ancora incredibilmente flessibile. Nella sua più semplice modalità, autenticazione basata su form è basato su un cookie crittografato che contiene il nome utente o l'id. Eventuali informazioni di altri utenti devono essere accessibili in un altro modo. Le opzioni includono:

  • Membership.GetUser Calling, che fa un round-trip al database quando si utilizza l'implementazione di default. Mentre certamente fattibile, può essere difficile da ottenere di destra e la sua posizione nel ciclo di vita pagina rende difficile il debug.
  • Memorizzare le informazioni in più in sessione, il che significa che in realtà avere lo stato della sessione attiva.Questo non è un problema per i siti piccoli, ma può essere un vero problema, una volta che si avvia bisogno di più server web.

FormsAuthenticationExtensions offre una terza opzione. Invece di costruire una cache di appartenenza o la creazione di un server sessione è sufficiente memorizzare i bit in più del diritto di informazione nel cookie di autenticazione. Ecco un esempio di un piccolo progetto MVC ho usato per testare la libreria. Questo sostituisce il codice predefinito nel metodo AccountController.LogOn.

/ / FormsAuthentication.SetAuthCookie (model.UserName, model.RememberMe);

var ticketData NameValueCollection = new Date ();
ticketData ["Nome"] = model.UserName; ticketData ["chiave"] = membershipUser.ProviderUserKey.ToString (); ticketData ["email"] = membershipUser.Email;

. FormsAuthentication new () SetAuthCookie (model.UserName, model.RememberMe, ticketData);

Una parola di avvertimento dal fondatore del progetto:

Le dimensioni contano sempre.

Le informazioni memorizzate in questo modo è incorporato nel biglietto di forme, che viene poi crittografato e inviato al browser degli utenti. Su ogni singola richiesta dopo questo, il cookie viene inviato intero backup del filo e decifrati.Memorizzazione di qualsiasi quantità significativa di dati qui è ovviamente sarà un problema. Tenerlo per assolutamente non più di alcuni valori semplici.

Senza parlare di dipendenze, consentendo FormsAuthenticationExtensions è tanto semplice quanto carico il pacchetto NuGet e cambiare un paio di righe di codice.

Se avete altre librerie piccolo ma utile che tu pensi che la gente dovrebbe conoscere dirci su di loro commentando qui o utilizzando il link "Contribuire News" nella parte alta della pagin

Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla


Nessun commento:

Posta un commento