J'ai actuellement un système où il y a une table d'utilisateur, une table de rôle et une table d'association de rôles d'utilisateur, où un utilisateur peut être associé à plusieurs rôles (comme Admin, BasicUser, etc.). Je suis capable d'autoriser des méthodes d'action basées sur ces rôles. Cela vient du cadre d'identité.Comment définir un privilège dans un rôle dans ASP.NET MVC?
Maintenant, je veux ajouter la prise en charge des privilèges afin que les méthodes d'action puissent être restreintes en fonction de celles-ci, plutôt que par des rôles. Par exemple, dans un contrôleur, je peux avoir une action HTTPPost que seule une personne avec un privilège "Write" devrait être en mesure d'effectuer avec succès.
De quels changements ai-je besoin pour attribuer des privilèges aux rôles? I.E., je veux sélectionner le rôle "Admin" pour avoir les privilèges "Write" et "Read", tandis qu'un rôle "BasicUser" ne se verra attribuer qu'un privilège "Read". De cette façon, un administrateur peut accéder à toute méthode autorisée par le privilège Write, contrairement à BasicUser.
Si je devais créer une autre table appelée "Privilege" et une table d'association entre cela et les rôles, et le code pour définir les privilèges dans un rôle, comment puis-je utiliser le privilège comme un filtre? Ainsi, par exemple, l'action ci-dessous ne doit être autorisée à être exécutée par un utilisateur que dans un rôle auquel le privilège "Write" est attribué.
[Write]
public ActionResult Create()
{
return View();
}
Merci.
Merci pour le point de départ. En utilisant cette technique, la classe YourCustomCode contiendra-t-elle le code qui vérifie si l'association entre le rôle et le privilège? C'EST À DIRE. tout le code de la base de données? – ITWorker
Exactement! N'oubliez pas de marquer comme réponse si vous êtes satisfait de la réponse. – bsoulier