2011-01-03 31 views
15

Desidero utilizzare l'autenticazione sul mio sito per accedere alla sezione Amministrazione. Ho già il mio schema di database, non voglio usare le tabelle di appartenenza ASP.NET per SQL Server. Ho tre tabelle: dipendenti, ruoli e impiegati: ruoli.Autenticazione moduli personalizzati in MVC

Mi piacerebbe molto mantenere il più semplice possibile, ma ho difficoltà a trovare una soluzione. Voglio solo usare l'autenticazione dei moduli con le mie tabelle in modo che i dipendenti possano accedere, disconnettersi, cambiare la loro password, ecc.

Se qualcuno potesse indirizzarmi a un post sul blog oa un tutorial su questo, sarebbe fantastico.

+0

Non sai come proteggere i dati deve essere , o il fattore di rischio, ma partendo dal presupposto che vale la pena proteggere o non ti preoccupare ... Assicurati di seguire le linee guida OWASP. La maggior parte degli sviluppatori non dovrebbe modificare la propria sicurezza quando è già disponibile un'API esistente che è stata sviluppata e testata da esperti, ma se insisti, almeno segui le linee guida. http://www.owasp.org/index.php/Authentication_Cheat_Sheet – David

+7

@David: Non sono d'accordo: l'origine dell'implementazione integrata è disponibile per la derivazione. Può essere oneroso dover utilizzare le tabelle integrate quando sono già presenti tabelle utente integrate nel modello dati. Microsoft ha basato il provider di appartenenza sulle interfacce in modo specifico in modo che possa essere esteso. –

+0

Ho intenzione di modificare il mio commento precedente: la memorizzazione della password non è una cosa semplice e può essere facilmente sbagliata. Quindi, estendersi, ma assicurati di capire come crittografare i dati sensibili a riposo in un database. –

risposta

24

Steven, controllare il mio serie di tutorial su sicurezza del sito Web: http://www.asp.net/web-forms/overview/older-versions-security/introduction/security-basics-and-asp-net-support-cs

(EDIT: Ho aggiornato l'URL di cui sopra come l'URL originale era di ritorno a 404. Ma si prega di tenere a mente che questo materiale è stato scritto nel 2008 ed è irrimediabilmente datato ora.)

I primi tre tutorial si concentrano esclusivamente sull'autenticazione basata su moduli senza discutere dell'appartenenza. Questi primi tre tutorial, in particolare i tutorial n. 2 e n. 3, dovrebbero farti muovere nella giusta direzione.

Per implementare i ruoli senza utilizzare il framework dei ruoli ASP.NET incorporato, consulta questo articolo: Role-Based Authorization With Forms Authentication.

Tutto ciò detto, vorrei suggerire di riconsiderare l'utilizzo di ASP.NET nelle biblioteche di appartenenza e ruoli. Evitarli significa che dovrai reinventare la ruota e probabilmente lo farai male. (Ad esempio, stai memorizzando in modo sicuro le password utente nella tua implementazione personalizzata?)

Buona programmazione!

+0

+1 - rotolare il tuo è di solito una cattiva idea, e sono totalmente d'accordo con te su questo! – David

+1

Che funziona, fino a quando non si deve lavorare con un datastore non SQL Server. –

+0

@EdDeGagne, è possibile creare un provider di appartenenze personalizzato per gestire un archivio dati alternativo. In effetti, qualcuno potrebbe averlo già fatto. Ad esempio, ecco un provider di appartenenza personalizzato per MySQL - http: //www.codeproject.it/Articoli/12301/Membership-and-Role-providers-for-MySQL –

4

Il provider di appartenenza integrato si basa su interfacce che possono essere sostituite con l'implementazione, che (tra le altre cose) possono utilizzare le proprie tabelle per l'autenticazione.

Ecco un video sulla creazione di un custom provider di ASP.NET Abbonamento: http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider

Ecco un buon articolo generale con puntatori ad altre risorse:
http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx

Problemi correlati