2012-03-23 13 views
7

Sono nuovo in ASP.NET MVC. Sono passato da PHP.Qual è il modo migliore per gestire gli utenti in ASP.NET MVC

In PHP, quando stavo creando una pagina che gestiva gli utenti, ho spesso creato le tabelle Utenti e Profili e memorizzato i dati al loro interno. In ASP.NET, ci sono i provider di appartenenza e di profilo.

Quindi, la mia domanda è, qual è il modo migliore per gestire gli utenti in ASP.NET MVC? Dovrei creare tabelle e logiche personalizzate come in PHP o dovrei creare fornitori personalizzati?

Lo so, ci sono molti argomenti simili su questo problema. Tuttavia, nessuno di questi è esattamente ciò di cui ho bisogno.

Grazie in anticipo, Mike.

+2

Non è necessario reinventare la ruota; utilizzare il provider di appartenenza incorporato. Qualunque cosa farai sarà soggetta a errori e meno sicura; soprattutto se non hai familiarità con il framework .net. Ci vorrà un po 'di tempo prima che tu possa crescere quello che l'ingegnere di Microsoft ha costruito. – frenchie

+2

@frenchie Mi permetto di non essere d'accordo. Il provider di appartenenza, come molte altre cose veloci e sporche, è buono per cose veloci e sporche (o demo) e non è difficile trovare un migliore (per i tuoi bisogni!). Costruisco il mio provider di appartenenza in base alle mie esigenze applicative e l'iscrizione integrata non soddisfa le mie esigenze correttamente. Sono arrivato a questa conclusione alcuni anni fa e non ricordo tutti i dettagli, ma ricordo che odio usare i guids come id utente. – MikeSW

risposta

2

Probabilmente dovrebbe dire non c'è modo migliore. Il meglio è ambiguo.

Direi che ci sono tre tipi generali di modi per fare utenti e ruoli con un server SQL (lo dico perché hai menzionato le tabelle).

Primo: utilizzare l'ASP.NET integrato (webforms/mvc agnostic) SqlMembership Provider. Contiene la maggior parte delle funzionalità che le persone devono gestire per gli utenti. Questo è probabilmente il più veloce da implementare, ma il meno estendibile. Questo sarebbe altamente raccomandato.

Secondo: Crea il tuo [Fornitore di appartenenza], per seguire il provider di appartenenze modello ma introduce la tua logica dall'SQL all'applicazione. La creazione di una propria offerta può essere un processo piuttosto lungo, ma si ottengono comunque tutte le funzionalità utili e possono essere utilizzate in altri progetti perché si tratta di un provider privato e non legato all'applicazione.

Terzo: crea la tua logica da zero. Non lo consiglierei a meno che non abbiate intenzione di costruirlo come un'applicazione indipendente.

+0

Grazie, questa è anche una buona opinione che mi ha aiutato nel decidere. – michy04

2

Sono d'accordo con Oscar e Frenchie - non reinventare la ruota. I provider di appartenenze ASP.NET dovrebbero fornire un buon inizio. Tuttavia, se sei un fan di TDD, potresti scoprire che è necessario incapsulare l'implementazione del provider di appartenenza all'interno di una classe che puoi controllare in modo da poter gestire il mocking. Il contratto con il fornitore di appartenenza è piuttosto ampio e strettamente accoppiato, e ho scoperto attraverso l'esperienza che si finisce usando solo il 30-40% di quella bestia. Crea il tuo contratto e usalo per interagire con il fornitore di appartenenza. Ti ringrazierai dopo.

Buona fortuna!

Problemi correlati