2011-03-28 7 views
18

Quelles sont les méthodes les plus courantes pour effectuer une validation utilisateur simple (connexion au compte)?Authentification utilisateur ASP.NET MVC 3

De même, pouvez-vous avoir différents schémas d'authentification par zone?

Modifier

Je crée un site de commerce électronique qui ont besoin d'avoir des actions protégées par utilisateur. Alors, comment irait-on faire ça? Il devra être capable de laisser seulement les utilisateurs authentifiés accéder à leurs informations.

+0

Pourquoi réinventer la roue alors? commencer à partir d'une bonne plate-forme de base pour un site de commerce électronique, si vous êtes en .NET, commencez par http://www.nopcommerce.com/ c'est une solution ASP.NET 4.0. – balexandre

Répondre

29

Vous avez plusieurs options quand il vient de faire l'authentification dans MVC:

L'authentification par formulaires intégrée peut vous permettre de limiter l'accès à différentes zones de votre application en fonction du rôle, utilisateur entre autres et il est assez facile à implémenter en utilisant l'attribut [Authorize].

qui suit, il faudrait que l'utilisateur soit connecté:

[Authorize] 
public ActionResult YourActionNameGoesHere() 
{ 
} 

De même, les éléments suivants, il faudrait que l'utilisateur soit connecté et être un administrateur:

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

Ceux étaient juste quelques méthodes pour l'accomplir, comme vous pouvez le voir il y a BEAUCOUP différentes méthodes pour accomplir ceci - j'espère que ce mi J'ai un peu éclairé pour vous aider à décider.

+0

Levi, l'expert en sécurité de l'équipe MVC, indique qu'il n'existe qu'une seule méthode sécurisée pour effectuer l'authentification. Vois ma réponse. –

3

s'il vous plaît aller à votre dossier modèle lorsque vous créez une application Internet avec VS 2010. vous verrez un fichier cs là. ce fichier contient un exemple de structure pour l'authentification de l'utilisateur

Rappelez-vous que: ASP.NET MVC n'est pas une structure distincte. il se trouve au-dessus de ASP.NET afin que vous puissiez utiliser la classe System.Web.Security.Membership sur MVC.

De même, vérifiez votre dossier compte dans votre dossier d'affichage. vous pourrez voir des échantillons là-bas.

espérons que cela aide.

+2

Lors de la création d'une application web vide avec MVC3 ces dossiers et classes ne sont pas inclus, donc cela peut être un peu trompeur ... –

+0

@Yngve avez-vous vu cela, j'ai indiqué que 'quand vous créez une application internet' pour effacer cela out ... il n'y a pas de confusion je suppose. – tugberk

+0

@CoffeeAddict Ne craint pas pour moi. – tugberk

8

Selon l'expert de la sécurité de l'équipe MVC

La seule façon prise en charge de la sécurisation de votre application MVC est d'avoir une classe de base avec un attribut [Authorize], puis d'avoir chaque type de contrôleur sous-classe ce type de base. Toute autre manière ouvrira un trou de sécurité .

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

+1

La citation relative à la sous-classe s'applique uniquement aux versions 1 et 2 de MVC. MVC3 + peut utiliser un GlobalActionFilter. – DarrellNorton

Questions connexes