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 :

Authentification à l'aide des rôles ASPNET : problème définition des droits d'accès.


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 19
    Points
    19
    Par défaut Authentification à l'aide des rôles ASPNET : problème définition des droits d'accès.
    Bonjour à tous,

    pour commencer, une bonne année à tout ceux qui me liront.

    Je vous expose mon problème sur lequel je bloque depuis plus d'une journée.

    Dans le cadre de mon emploi, je travaille actuellement sur une application Aspnet MVC3 Razor pour la gestion de fiches diverses. L'accès au SI se fait via l’authentification par forms (Jusque là pas de problème).

    J'utilise ELMAH pour les erreurs non catchées, ce qui me permet de traiter ces erreurs par la suite. ELMAH fournit une interface pour visualiser les erreurs. Cette interface est accessible via elmah.axd à la racine du site.

    Comme les données affichées ne doivent pas être publiques, j'ai mis en place une règle dans le web.config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      <location path="elmah.axd">
        <system.web>
          <httpHandlers>
            <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
          </httpHandlers>
          <authorization>
            <allow roles="Dev"/>
            <deny users="*" />
          </authorization>
        </system.web>
      </location>
    Ce code doit autoriser tous les users qui sont dans le rôle "Dev" et refuser tous les autres.

    Or, si je me connecte avec un user qui est dans le rôle "Dev", l'accès à la page est refusé.

    En revanche, si j'autorise l'utilisateur en particulier dans le web config, je peux accéder à la page sans problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <allow users="yohann.pansard@gmail.com"/>
    J'ai vérifié plusieurs fois dans ma table Aspnet_usersinroles et tout est bon.

    Mon roleManager doit être bon puisque je me sers de ces mêmes rôles dans l'application (par exemple Role.IsUserInRoles("toto", "reader")). Au cas où, voici la configuration de mon rolemanager :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <roleManager enabled="true" cacheRolesInCookie="false" defaultProvider="AspNetSqlRoleProvider">
          <providers>
            <clear />
            <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="app_demo" />
          </providers>
        </roleManager>
    En fait, j'ai l'impression que le lien ne se fait pas entre le user et ses rôles ?

    Je dois avoir oublié quelque chose, mais sincèrement, je ne vois pas quel peut être cet élément.

    Est ce que quelqu'un pourrait m'aider svp ?


    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Est-ce que la valeur du rôle de l'objet utilisateur correspond bien?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 19
    Points
    19
    Par défaut
    Bonjour Immobilis,

    Merci de prendre le temps de regarder mon problème.

    Citation Envoyé par Immobilis Voir le message
    Salut,

    Est-ce que la valeur du rôle de l'objet utilisateur correspond bien?

    A+
    La valeur est bien la bonne. J'ai d'ailleurs essayé avec le RoleName et le LoweredRoleName de la BDD mais ça ne change rien.

    Pour m'assurer que le user est bien dans le rôle, j'ai contrôlé depuis l'espion que le user connecté possède bien le rôle 'dev', ce qui est le cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Roles.IsUserInRole(User.Identity.Name, "Dev")
    retourne true et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Roles.GetRolesForUser(User.Identity.Name)
    me retourne bien un tableau de string avec une seule valeur qui est le rôle Dev.

    Pour autant, je ne peux toujours pas accéder à elmah.axd

    Chose bizarre, j'ai fais un test avec une bête page html dans un dossier qui possédait son propre web.config, le problème est le même...

    Pour le moment, je sèche totalement sur l'origine du problème !

  4. #4
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    N'ayant pas la solution sous le coude, revois les étapes ici: http://msdn.microsoft.com/en-us/libr...ht000013_step4
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [PHP 5.4] Annuaire LDAP : définition des rôles et profils
    Par GerardClipp dans le forum Langage
    Réponses: 1
    Dernier message: 07/08/2013, 10h46
  2. [ZF 1.11] Problème formatage des URL dans Zend_Navigation associé à des Routes
    Par zebulon36 dans le forum Autres composants
    Réponses: 1
    Dernier message: 16/07/2012, 23h54
  3. Problème numéro des figures dans la liste des figures
    Par GDMINFO dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 8
    Dernier message: 31/08/2010, 08h54
  4. Réponses: 2
    Dernier message: 21/08/2009, 13h41
  5. Réponses: 6
    Dernier message: 21/02/2008, 21h17

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