Kati83
Messages postés65Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention 3 septembre 2004
-
5 juil. 2004 à 17:55
Kati83
Messages postés65Date d'inscriptionmardi 9 mars 2004StatutMembreDerniè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 ?
taharban
Messages postés56Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention14 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");