J'ai un projet ASP.NET MVC et le client nécessite un accès séparé pour différents rôles. Il veut avoir de nombreux rôles, mais certains d'entre eux ont un accès très similaire (sauf certaines choses). Bien sûr, je peux le faire comme ce qui suit:Autorisation basée sur le rôle ou la revendication? Ou hybride?
if (User.IsInRole("Superadmin") || User.IsInRole("CompanyAdmin") || ...)
{
// bla-bla-bla
}
else if (....)
{
}
Cependant, il me semble qu'il ne soit pas aussi souple que devrait être. Toute petite variation de droits nécessite que le script passe en revue l'ensemble du projet et le modifie.
Je pense faire une approche "hybride", c'est-à-dire définir un rôle pour un utilisateur comme maintenant, et également définir des revendications. Et ainsi vérifier par la suite seulement les revendications, mais pas la liste des rôles. S'il est nécessaire de changer l'accès pour n'importe quel rôle, il suffit d'ajouter/supprimer une revendication à un endroit après la connexion (même pas nécessaire de l'enregistrer dans la base de données).
Qu'en pensez-vous?
mais cela m'oblige à créer une longue liste pour vérifier chaque rôle autorisé et canAccessSuperadminDashboard. Je veux vérifier une seule réclamation ... –
cochez une seule réclamation? Cela ne va pas fonctionner, sauf si vous voulez avoir autant de revendications que permutations de tous les droits possibles. ce qui serait, un peu hm ... maladroit :) –