2011-07-24 4 views
1

je la structure du site suivant:accès basé sur le rôle de ASP.NET

enter image description here

Ce que je m'y attendais à faire était de refuser toute personne qui n'est pas un utilisateur connecté avec le rôle RegisteredUser , sauf sur Reset.aspx et Validation.aspx, où il permettrait à quiconque (connecté ou non) d'accéder, mais ce n'est pas le cas en ce moment.

Tout le monde qui n'est pas un RegisteredUser n'a pas accès à ces deux pages, que fais-je de mal?

Mise à jour Même cela ne fonctionnera pas:

<?xml version="1.0"?> 

<configuration> 
    <location path="Reset.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

    <location path="Validation.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 

Il ne fait aucun sens, ne serait-ce censé être la valeur par défaut du système?

+0

Avez-vous essayé de vérifier les règles en utilisant la configuration ASP.NET? Ouvrez-le avec une petite icône dans le coin droit de l'Explorateur de solutions (ou Project \ Website-> Configuration ASP.NET). Dans Configuration ASP.NET, utilisez Sécurité -> Règles d'accès -> Gérer les règles d'accès pour le dossier approprié. – Kirill

+0

vous devez spécifier le chemin sans ~/ –

+0

@coder net: Dans la question d'origine il était mentionné: "Je n'ai placé aucune règle restrictive jusqu'à WebForms \ Account, où j'ai la configuration suivante dans web.config: [. ..] ". Dans le cas où il utilise le web.config placé dans le dossier (pas le principal), il n'a pas besoin de spécifier explicitement le chemin, seulement les noms de fichiers. – Kirill

Répondre

1

Vous n'avez pas besoin de mapper les chemins, fichier uniquement les noms:

<?xml version="1.0"?> 

<configuration> 
    <location path="Reset.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     <deny /> 
     </authorization> 
    </system.web> 
    </location> 

    <location path="Validation.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

    <system.web> 
    <authorization> 
     <allow roles="RegisteredUser" /> 
     <deny users="*" /> 
    </authorization> 
    </system.web> 
</configuration> 
+0

Merci d'avoir accepté, mais comment avez-vous résolu votre problème? Vous avez décrit un comportement étrange dans la mise à jour de votre question. Ou était-ce juste un bug local? – Kirill

Questions connexes