ASP.NET MVC Formes d'Authentification + Autoriser Attribut + Simple Rôles

Je suis en train d'ajouter simple d'Authentification et d'Autorisation pour un ASP.NET application MVC.

Je suis juste en train de virer de bord sur certaines des fonctionnalités ajoutées à la base de l'Authentification de Formulaires (en raison de la simplicité et de la coutume structure de base de données)

En supposant que c'est ma structure de base de données:
Utilisateur:
nom d'utilisateur
mot de passe
rôle (idéalement, certains enum. Des chaînes en cas de besoin. Actuellement, l'utilisateur n'a qu'UN seul rôle, mais cela peut changer)

Niveau Élevé Problème:
C'est ainsi que la structure de base de données, je voudrais être en mesure de faire ce qui suit:

  • Simple Connexion utilisant l'Authentification par Formulaires
  • Décorer mes actions avec:
    [Autoriser(Rôles={ MyRoles.Admin, MyRoles.Membre})]
  • Utilisez les rôles de mon point de Vue (à déterminer les liens à afficher dans certains partiels)

Actuellement, tout ce que je suis vraiment sûr, c'est comment Authentifier. Après que je suis perdu. Je ne suis pas sûr à quel point dois-je saisir le rôle de l'utilisateur (login, chaque autorisation?). Depuis mes rôles ne peuvent pas être des chaînes de caractères, je ne suis pas sûr de savoir comment ils s'intégreront à l'Utilisateur.IsInRole().

Maintenant, je pose la question ici car je n'ai pas trouvé un "simple" accomplir ce dont j'ai besoin. J'ai vu plusieurs exemples.

Pour L'Authentification:

  • Nous avons simple validation de l'utilisateur qui consulte la base de données et "SetAuthCookie"
  • Ou nous remplacer le fournisseur d'appartenances et de le faire à l'intérieur de ValidateUser
    Dans l'un ou l'autre, je ne suis pas sûr de la façon de virer de bord sur mon simple des Rôles d'utilisateur, de sorte qu'ils travaillent avec l':
    HttpContext.Actuel.De l'utilisateur.IsInRole("L'Administrateur")
    En outre, je ne suis pas sûr de savoir comment le modifier pour travailler avec mes valeurs enum.

Pour l'Autorisation, j'ai vu:

  • Découlant AuthorizeAttribute et la mise en œuvre de AuthorizeCore OU OnAuthorization pour gérer les rôles?
  • La Mise En Œuvre De IPrincipal?

Toute aide serait grandement appréciée. Cependant, j'ai peur de besoin de beaucoup de détails, parce que rien de ce que j'ai Googlé semble correspondre avec ce que je dois faire.

InformationsquelleAutor Kevin | 2009-09-06