none
Créer et utiliser des profiles utilisateurs.. RRS feed

  • Question

  • Bonjour Guillaume,

     

    Et oui comme toujours je revgiens t'embeter avec mes questions  

     

    voilà sur ce nouveau post je voudrai te demander par rapport à la création et utilisation de profiles avec ASP.NET, j'expose un exemple:

     

    sur un formulaire default.aspx j'ai des objets  (TextBox1, TexBox2, TextBox3) ainsi que des liens (Lien1, Lien2, Lien3).

     

    je voudrai mettre en place un mecanisme d'authentification avec Role (utilisateur, Utilisateur avec pouvoir, administrateur), les utilisateurs sont respectivement (invité, membre, admin) et là le degrés d'affichage des objets se fait comme suit:

     

    1-invité(profile utilisateur): il a la TextBox1 activée ainsi que le Lien1, les autres objets restants sont tous desactivés.

    2-membre(profile utilisateur avec pouvoir): il a la TextBox1 et la TextBox2 activées ainsi que les Lien1 et Lien2, les autres objets restants sont tous desactivés.

    3-admin(profile administrateur): il a les 03 TextBox activées ainsi que les 03 Liens.

     

    je sais qu'il faudra utiliser une BD pour créer les users et les profiles.

     

    j'attendrai ta réponse    

     

    Merci à toi

     

    Alexy

    dimanche 30 mars 2008 20:24

Réponses

  • Bonjour,

    Le plus simple est d'utiliser la méthode de gestion des utilisateurs an base dont nous avons parlé dans le message :

     

    http://forums.microsoft.com/MSDN-FR/ShowPost.aspx?PostID=2727803&SiteID=12

     

    Lors de la méthode Application_AuthenticateRequest vous renseignez un objet GenericPrincipal avec le nom de l'utilisateur et ses rôles avec les données de la base.

     

    Dans votre page, il ne reste plus qu'a utiliser la méthode HttpContext.Current.User.IsInRole("XXX") pour tester si l'utilisateur est ou non dans un rôle et d'afficher/masquer les contrôles. Je vous conseille de masquer les contrôles auquel l'utilisateur n'a pas accès plutôt que de les désactiver pour des questions de sécurité.

    Vous pouvez donc par exemple dans la méthode OnPreRender ajouter le code suivant (je suppose que dans votre fichier aspx vous avez mis la propriété Visible="False" à tous les contrôles TextBoxXXX et LienXXX :

     

    Code Snippet

    protected override void OnPreRender(EventArgs e)

    {

    base.OnPreRender(e);

     

    IPrincipal user = HttpContext.Current.User;

    if (user.IsInRole("invité") || user.IsInRole("membre") || user.IsInRole("admin"))

    {

    // affiche les controles Xxx1

    this.TextBox1.Visible = true;

    this.Lien1.Visible = true;

    }

     

    if (user.IsInRole("membre") || user.IsInRole("admin"))

    {

    // affiche les controles Xxx2

    this.TextBox2.Visible = true;

    this.Lien2.Visible = true;

    }

     

    if (user.IsInRole("admin"))

    {

    // affiche les controles Xxx3

    this.TextBox3.Visible = true;

    this.Lien3.Visible = true;

    }

    }

     

     

     

     

    Guillaume

    lundi 31 mars 2008 08:06