2011-03-28 30 views
18

Quali sono alcuni dei metodi più comuni per eseguire la convalida utente semplice (accesso account)?ASP.NET MVC 3 Autenticazione utente

Inoltre, è possibile disporre di schemi di autenticazione diversi per area?

Modifica

sto creando un sito di ecommerce che avrà bisogno di avere le azioni protette per utente. Quindi come si farebbe per fare questo? Dovrà essere in grado di lasciare che solo gli utenti autenticati accedano alle loro informazioni.

+0

Perché inventare la ruota, allora? partendo da una buona piattaforma di base per un sito di e-commerce, se sei in .NET, inizia con http://www.nopcommerce.com/ è una soluzione ASP.NET 4.0. – balexandre

risposta

29

Sono disponibili diverse opzioni quando si tratta di fare l'autenticazione in MVC:

L'Autenticazione moduli incorporata consente di limitare l'accesso a diverse aree dell'applicazione in base al ruolo, all'utente tra le altre cose ed è abbastanza semplice da implementare utilizzando l'attributo [Authorize].

Di seguito richiederebbe l'utente acceda:

[Authorize] 
public ActionResult YourActionNameGoesHere() 
{ 
} 

Analogamente, il seguente richiederebbe l'utente acceda AND essere un amministratore:

[Authorize(Roles="Administrator")] 
public ActionResult YourActionNameGoesHere() 
{ 
} 

Quelli erano solo pochi metodi per realizzarlo, come puoi vedere ci sono MOLTI diversi metodi per realizzare questo - spero che mi ght ha gettato un po 'di luce nell'aiutarti a decidere.

+0

Levi, l'esperto di sicurezza del team MVC, afferma che esiste un solo modo sicuro per eseguire l'autenticazione. Vedi la mia risposta. –

3

vai alla cartella del tuo modello quando crei un'applicazione internet con VS 2010. vedrai un file cs lì. tale file contiene una struttura di esempio per l'autenticazione utente

Ricordare che: ASP.NET MVC non è un framework separato. si trova sopra ASP.NET in modo da poter utilizzare anche la classe System.Web.Security.Membership su MVC.

Inoltre, controllare la cartella Account all'interno della cartella di visualizzazione. vedrai alcuni campioni lì.

spero che questo aiuti.

+2

Quando si crea un'applicazione web vuota con MVC3 queste cartelle e classi non sono incluse, quindi questo potrebbe essere un po 'fuorviante ... –

+0

@Yngve l'hai visto, ho indicato come' quando crei un'applicazione internet 'per cancellare quello fuori ... non c'è confusione, credo. – tugberk

+0

@CoffeeAddict Non fa schifo per me. – tugberk

8

Secondo l'esperto di sicurezza sulla squadra MVC

L'unico modo supportato di assicurare l'applicazione MVC è quello di avere una classe base con un attributo [Autorizza], e quindi di avere ogni tipo controllore sottoclasse quel tipo di base. Qualsiasi altro modo aprirà un buco di sicurezza .

http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx

+1

L'offerta relativa alla sottoclasse si applica solo alle versioni 1 e 2 di MVC. MVC3 + può utilizzare un GlobalActionFilter. – DarrellNorton

Problemi correlati