Sécurité => authorization avec roles

Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 5 juil. 2004 à 17:55
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004 - 7 juil. 2004 à 17:50
Bonjour,

Je voudrais avoir quelques informations concernant la sécurité pour les webforms.
En fait, je voudrais définir plusieurs roles (dans mon web.config).
Il me faudrait un role admin, un autre membre et un rédacteur.
Je pensais créer une classe avec une méthode permettant de dire pour un login et pass le type de role, et d'autres fonctions pour la gestion des cookies, etc.

En gros, je voudrais que les utilisateurs de type admin puissent tout faire (consultation, ajout, modif, suppression)et accéder à toutes las parties du site.
Je voudrais que les membres puissent accéder à l'espace membre (modification du profil, etc)
Et je voudrais que les rédacteurs puissent accéder aux formulaires d'ajouts se trouvant dans ma partie admin.

Comment est-ce que je peux dire que le role d'administrateur paut accéder à tous les fichiers, et que par exemple les rédacteurs ne peuvent pas accéder auc formulaires de suppression (dont les noms sont du genre Supprxxxxx.aspx) ?

J'ai vu dans la doc qu'il existait les classes System.Security.Principal.IPrincipal et System.Security.Permissions, est-ce que je peux les utiliser dans mon cas ?

Merci d'avance.

*** Kati ***

2 réponses

taharban Messages postés 56 Date d'inscription lundi 7 juillet 2003 Statut Membre Dernière intervention 14 novembre 2007
6 juil. 2004 à 11:01
Extrait de MSDN:
Si vous utilisez l'authentification par formulaires, les rôles ne sont pas attribués à l'utilisateur authentifié ; vous devez le faire par programmation. Pour attribuer des rôles à l'utilisateur authentifié, utilisez l'événement OnAuthenticate du module d'authentification (qui est le module d'authentification par formulaires dans cet exemple) pour créer un nouvel objet GenericPrincipal et l'attribuer à la propriété User de HttpContext. Le code suivant illustre cette procédure :

public void Application_AuthenticateRequest(Object s, EventArgs e)      
{
   if (HttpContext.Current.User != null)
   {
      if (HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) 
      {
         System.Web.Security.FormsIdentity id = HttpContext.Current.User.Identity;
         String[] myRoles = new String[3];
         myRoles[0]= "Directeurs";
         myRoles[1]= "Testeurs";
         myRoles[2]= "Développeurs";
         HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id,myRoles);
      }
   }
} 


Pour vérifier si un utilisateur a un rôle spécifique et limiter l'accès en conséquence, utilisez le code suivant (ou un code similaire) dans vos pages .aspx : 

if (User.IsInRole("Directeurs"))
   Response.Write("Vous êtes un Directeur");
else if (User.IsInRole("Testeurs"))
   Response.Write("Vous êtes un Testeur");
else if (User.IsInRole("Développeurs"))
   Response.Write("Vous êtes un Développeur");


source: http://support.microsoft.com/default.aspx?scid=kb;%5BLN%5D;306590
0
Kati83 Messages postés 65 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 3 septembre 2004
7 juil. 2004 à 17:50
Bonjour,

Merci beaucoup pour ton aide, je crois que la page que tu m'as indiquée va pas mal m'aider.
Faut dire qu'on a vite fait de se perdre dans la msdn...

A+

*** Kati ***
0
Rejoignez-nous