IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

régle d'accès aux pages enfants [Débutant]


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Par défaut régle d'accès aux pages enfants
    Bonjour à tous, débutant en programmation c# je suis en cours de création d'une page web avec ASP.NET.

    J'ai à peu près bien compris la définition des rôles et des autorisations, seulement j'aimerais savoir si il est possible de n'autoriser l'accès qu'à des sous-menus (pages enfants) non créer à la conception du site mais pendant son utilisation.

    Je m'explique : Dans le menu de ma page Master, j'ai créer différents menu 'Parents' en plus de la page d'accueil et de la page A propos.
    ces pages sont : Expert et Superviseur.
    Sous la Page Expert (accès autorisé à l'admin et à l'expert mais refuser aux superviseurs) on retrouve 2 sous-menu alors qu'il n'y a rien (pour le moment) sous la page Superviseur (accès autorisé à l'admin, à l'expert et aux superviseurs).

    Au cours de l'utilisation, l'expert via un sous menu 'création Lieu' va créer des nouvelles pages pour le menu Superviseur. (exemple : Site1, Site2, etc...)

    Ce qui m'intéresse c'est de pouvoir donner l'accès à la page Site1 uniquement à un nombre définis d'utilisateurs reconnus sous le role superviseur, idem pour la page Site2 (pas les mêmes que Site1) etc...
    Actuellement ce n'est pas le cas puisque les utilisateurs ayant le rôle superviseur ont accès à toutes ces nouvelles pages crées.

    Merci de votre aide

  2. #2
    Membre confirmé

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Par défaut
    Salut,

    Il existe plusieurs solutions pour ça. La première qui me vient serait de créer une classe héritant de System.Web.Page dont l'accès ne serait réservé qu'à un profil/groupe.

    Ainsi, lorsque tu créeras des pages à la volée, au lieu de créer une System.Web.Page, tu crées une "AdministratorPage" ou une "SupervisorPage", par exemple.

    En espérant que ça puisse t'aider...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Création physique du fichier ou dynamique ?

  4. #4
    Membre confirmé

    Développeur .NET
    Inscrit en
    Juillet 2008
    Messages
    176
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juillet 2008
    Messages : 176
    Par défaut
    Re,

    Je crois que le monsieur veut des pages physiques ET dynamiques.

    Bref, si je reviens, c'est juste pour préciser qu'il existe une solution encore plus simple. Au niveau du web.config, il est possible de restreindre l'accès à certains répertoires.

    Ainsi, tu n'aurais rien à faire côté code si tu crées tes pages dans des répertoires distincts. Le répertoire "AdministratorFolder" ne serait ainsi accessible qu'aux personnes ayant le rôle admin.

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <location path="AdministratorFolder">
    <system.web>
        <authorization>
        <allow roles="Admin"/>
        </authorization>
        </system.web>
    </location>

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Par défaut
    Il s'agit bien d'une création physique et dynamique (création des pages Site1, Site2, etc....) à partir d'une TextBox et d'un Bouton accessible uniquement par l'admin et/ou l'expert sous un sous-menu (création site.aspx) de l'onglet Expert.

    A la création du programme, j'ai prévu sous la racine un repertoire expert (sous lequel on retrouve la page création site.aspx + une autre utilisées par les utilisateurs ayant le rôle d'expert) et un répertoire superviseur (sous lequel il y a le fichier site.aspx servant de support à la création des fameuses pages Site1, Site2, etc.....)

    Pour la création de ces nouvelles pages, je passe les paramètres dans la page Site.Master.cs en utilisant la fonction MenuItem et tout le code qui va avec.

    Une fois existante ces pages apparaissent sous l'onglet Superviseur (qui n'a rien au départ) et sont donc pour le moment accessibles à tous les utilisateurs ayant le role superviseur. ces pages seront exploitées par la suite pour d'autres taches....

    si je regarde le fichier web config du répertoire Superviseur j'ai :
    <system.web>
    <authorization>
    <allow roles="Superviseur"/>
    </authorization>
    </system.web>

    sous la page web config du répertoire Expert j'ai :
    <system.web>
    <authorization>
    <allow roles="Admin"/>
    <allow roles="Expert"/>
    <deny roles="Superviseur"/>
    </authorization>
    </system.web>

  6. #6
    Membre émérite
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Par défaut
    Je pense qu'il est préférable de cacher les menus dont l'utilisateur n'a pas les droits.

    Voici un petit bout de code qui montre comment cacher des boutons selon le rôle de l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <asp:TemplateField ShowHeader="False">
         <EditItemTemplate>
              <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True"
                   CommandName="Update" Text="Update"></asp:LinkButton>
     
               <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False"
                    CommandName="Cancel" Text="Cancel"></asp:LinkButton>
     
         </EditItemTemplate>
         <ItemTemplate>
              <asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
                   CommandName="Edit" Text="Edit"></asp:LinkButton>
     
               <asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
                   CommandName="Delete" Text="Delete"></asp:LinkButton>
     
         </ItemTemplate>
    </asp:TemplateField>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected void UserGrid_RowCreated(object sender, GridViewRowEventArgs e)
    {
         if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex != UserGrid.EditIndex)
         {
              // Programmatically reference the Edit and Delete LinkButtons
              LinkButton EditButton = e.Row.FindControl("EditButton") as LinkButton;
     
              LinkButton DeleteButton = e.Row.FindControl("DeleteButton") as LinkButton;
     
              EditButton.Visible = (User.IsInRole("Administrators") || User.IsInRole("Supervisors"));
              DeleteButton.Visible = User.IsInRole("Administrators");
         }
    }

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2015
    Messages : 30
    Par défaut
    Merci katKiller pour l'info. Dans quelle page je dois coller ce code ?

    Et si je remplace le rôle Superviseur (j'ai pour le moment 5 utilisateurs sous ce rôle) par 2 rôles Superviseur1 (3 utilisateurs) et Superviseur2 (2 utilisateurs) est-ce que le résultat sera plus facile à obtenir ?

    En tout cas merci à tous ceux qui ont ou vont m'aider sur ce problème.

    C'est la première fois que je crée un site web en c# et j'ai encore plein de lacune.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Sécurité] Empêcher l'accès aux pages
    Par benoitinfrance dans le forum Langage
    Réponses: 14
    Dernier message: 24/08/2006, 11h30
  2. [Sécurité] accés aux pages protégées
    Par amine_smi dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2006, 18h55
  3. [Pb Reseau et internet] Accés aux pages jaunes
    Par Fooshi dans le forum Administration
    Réponses: 3
    Dernier message: 06/12/2005, 16h48
  4. [TOMCAT] acces aux page jsp dans un autre repertoire
    Par yanagiba dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 16/08/2005, 06h48
  5. [Struts] Droits d'un user et gestion des accès aux pages
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2004, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo