61 votes

Comment utiliser ma propre base de données avec SimpleMembership et WebSecurity? Qu'est-ce que la sécurité MVC4?

J'ai tout lu sur ce sujet que j'ai pu trouver, y compris des articles MSDN et AINSI de posts, mais je suis toujours perdu et confus.

Questions

Veuillez répondre aux questions suivantes (si possible):

  1. Qu'est-ce que SimpleMembership/SimpleMembershipProvider (WebMatrix.WebData) et quel est-il/sont-ils responsables?

  2. Qu'est-ce que WebSecurity (WebMatrix.WebData)?

  3. Qu'est-ce que l' Adhésion (Système d'.Web.De sécurité) de la classe?

  4. Pourquoi ne MVC4 créer un UserProfile table et un webpages_Membership table? Quelles sont-elles et quelle est la différence? Qu'est-ce que le UserProfile classe qui MVC4 crée?

  5. Qu'est-ce que le UsersContext classe?

  6. Comment faire toutes ces travailler ensemble pour faire de l'authentification de l'utilisateur?

Ma Situation

À ces questions, alors déboucher sur le problème suivant:

Supposons que j'ai une base de données existante avec les utilisateurs (Id, noms d'utilisateur, mots de passe). Je suis en création d'une nouvelle MVC4 application et à l'aide de l'Authentification par Formulaires. Les mots de passe utilisateur sont stockées dans la base de données sous une forme cryptée (pas bcrypt).

Que dois-je faire pour le faire fonctionner avec MVC4?

Dois-je créer un personnalisé MembershipProvider?

Ma Connaissance À Ce Jour

Aussi loin que je peux comprendre, WebSecurity est une classe statique (Module) qui interagit avec un MembershipProvider. Un MembershipProvider est une classe qui s'explique de la façon dont les fonctions de travail, tels que ValidateUser, CreateUser, ChangePassword.

Pour résoudre mon problème, je suppose que j'ai besoin de créer un personnalisé MembershipProvider et dire WebSecurity d'utiliser mon nouveau MembershipProvider.

Bounty?

J'ai placé une prime sur cette question et a l'intention d'attribuer à Andy Brown une excellente réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X