ASP.NET MVC Comment créer un fournisseur de rôle
Étant relativement nouveau à l'ASP MVC, je ne suis pas sûr ce qui permettrait de mieux répondre à mes besoins. J'ai construit un site intranet à l'aide de l'authentification Windows et je suis en mesure d'assurer des contrôleurs et des actions à l'aide de l'Active Directory rôles, par exemple
[Authorize(Roles="Administrators")]
[Authorize(Users="DOMAIN\User")]
public ActionResult SecureArea()
{
ViewBag.Message = "This is a secure area.";
return View();
}
J'ai besoin de définir mes propres rôles de sécurité indépendant de la publicité des rôles. La fonctionnalité désirée est que les utilisateurs authentifiés ont accès à des actions spécifiques en fonction d'un ou plusieurs rôles associés avec leur profil dans ma base de données d'application.e.g: "Gestionnaire", "Utilisateur", "Invité", "Analyste", "Développeur", etc.
Comment puis-je créer un rôle de fournisseur et/ou de la coutume d'autorisation d'attribut(s)?
- Je pense que poser pour le meilleur/meilleure façon est d'aller pour obtenir beaucoup de réponses différentes. Une bonne approche est de haut en bas. C'est-à - autorisant au niveau du contrôleur et puis à limiter à la méthode/de l'action en fonction des besoins. Vous pouvez également mettre en place une zone de Contrôleur de Base et ensuite chaque contrôleur dans ce domaine met en œuvre la base. La zone de la base de contrôleur peut rediriger vers une page appropriée si le niveau d'autorisation n'est pas remplie.
Vous devez vous connecter pour publier un commentaire.
Ma solution a été de créer un rôle de fournisseur. Voici les étapes que j'ai pris, au cas où quelqu'un d'autre a besoin d'aide plus tard:
Créer votre utilisateur personnalisée et le rôle des classes
et
Configurer votre base de données de contexte
Créer votre fournisseur de rôle et de mettre en œuvre les méthodes suivantes
Modifier votre site web.config pour configurer la connexion de base de données et le rôle de fournisseur de référence
et
Dans le gestionnaire de paquets de la console, de permettre les migrations
Dans le nouvellement créé Configurations.cs configurer l'utilisateur/rôle des magasins et des gestionnaires et configurer le gestionnaire de l'utilisateur du programme de validation d'accepter '\' caractères
Dans le gestionnaire de paquets de la console, s'assurer de la base de données est créée et graines
Créer un personnalisé autorisation de l'attribut qui sera redirigé vers une page d'accès non autorisé, en cas d'échec
Vous avez terminé! Vous pouvez maintenant créer une page accès refusé (dans ce cas ~/Home/AccessDenied) et d'appliquer l'attribut de toute action, par exemple
Espère que cela aide quelqu'un dans l'avenir. Bonne chance!