Voici mon problème avec mon projet Internet MVC 4 utilisant l'authentification par formulaires. Disons que j'ai des hôtels et je veux que les utilisateurs autorisés accèdent chacun sous différents rôles. L'utilisateur se connecte. Ensuite, à partir d'une liste déroulante, l'hôtel cible est sélectionné et la sécurité de l'application réagit en conséquence.MVC 4 - RoleProvider pour gérer les autorisations des utilisateurs authentifiés avec différentes portées
J'aurais besoin de quelque chose comme [Authorize (Roles = "Administrator")] mais seulement dans cette portée d'hôtel.
Ma première aproche héritait de AuthorizeAttribute et passer outre AuthorizeCore LIKE est montré dans ce thread
De là, je pourrais obtenir le HttpContext.Session [ « HotelId »] et interroger une table de UserRolesInHotel. Cela dit, je devrais avoir ma propre table de rôles avec une structure similaire à UserId, RoleId, HotelId. Donc SimpleRolePrivider est court à cette tâche et je serais obligé de créer un CustomeRoleProvider. Les méthodes RoleProvider ne gèrent pas les paramètres supplémentaires, car j'ai besoin de HotelId lorsque j'ajoute un nouveau rôle à un utilisateur.
Pour plus de précisions:
- utilisateur ouvre une session avec l'utilisateur/mot de passe -> OK (SimpleMembershipProvider)
- assermentée Un utilisateur sélectionne Hôtel 1 -> Un utilisateur est un pour Hôtel "Administrateur" 1.
- assermentée utilisateur un changement à l'Hôtel 2 -> L'utilisateur a est un « utilisateur » dans Hôtel 2
Je peux avoir un certain nombre d'hôtels.
- utilisateur A -> Hôtel 1 -> { "Administrateur", "Utilisateur"}
- utilisateur A -> Hôtel 2 -> { "utilisateur"}
- utilisateur A -> Hôtel 3 -> { "Propriétaire"}
- utilisateur A -> Hôtel 4 -> { "administrateur"}
la liste des rôles est toujours le même.
Je suis aux prises avec cette implémentation depuis quelques jours et je n'ai pas pu trouver une solution pratique. Toute idée serait très appréciée.
Merci!
Salut, avez-vous déjà trouvé une solution à ce problème? Je me trouve face au même problème que vous avez = /. Merci! – SaiyanGirl