2017-09-02 2 views
0

Je crée un système utilisant Asp.Net MVC, mais avant de commencer à développer, j'ai besoin de définir la politique de sécurité. J'ai pensé à le créer par profil où chaque profil aura des permissions pour accéder, par exemple: Profil Administratif (toutes les permissions), Profil Commun (restreindre l'accès), Gestionnaire de Profil (avec quelques permissions de profil Administratif).Comment créer une politique de sécurité par profil en utilisant Asp.Net MVC?

Je pensais créer un profil avec des autorisations par Nom de la méthode ou les contrôleurs et donner des autorisations que booléen true/false, par exemple: La méthode addNewProduct(), si cette méthode fonctionne uniquement au profil administratif/directeur Je donnerai des autorisations que pour eux, cependant, je ne sais pas comment faire pour obtenir le nom du contrôleur ou de la méthode pour donner ces permissions.

Exemple:

Profils

Administrative  | Common    | Manager 
[x]addNewProduct | []addNewProduct | [x]addNewProduct 

Comment pourrais-je faire cela? Toute suggestion ?

Répondre

1

Ce que vous cherchez est pas profils mais rôles, et la technique est appelée autorisation basée sur les rôles.

Dans ASP.NET MVC, vous pouvez l'utiliser comme ceci:

[Authorize] //ensure a user is signed-in 
public class MyController : Controller 
{ 
    [Authorize(Roles = "Administrative,Manager")] // ensure the user is signed in and belongs in one of the roles 
    public ActionResult DoSomething() 
    { 
     return View(); 
    } 
} 

Ici, si, par exemple, Windows Authentication a été activé, l'attribut Authorize rechercherait Groups de l'utilisateur Active Directory pour confirmer si la l'utilisateur appartient à l'un de ces groupes ou non.