Meilleur auteur de réponses
Atelier 10

Question
-
Bonjour,
J'ai commencé l'atelier 10 en reprenant le fichier de démarrage.
J'ai lancer l'outil de configuration d'ASP.NET, Sélectionné un fournisseur différent pour chaque fonctionnalité.
Fait les test = OK
Je me suis assuré que le "<membership defaultProvider="AspNetSqlMembershipProvider"
Je me suis assuré que le role de "admin" était "administrateurs" et que la rêgle de "administrateurs" était autoriser sur la racine du projet.
J'ai intégré le dossier "XmlMembershipServices" par fichier, ajouter --> sitesweb existant.
J'ai défini AffairesSansRisque comme projet de démarrage.
Bref tout me semble avoir été initialisé correctement, et malgré cela quand je connecte sur Admin j'ai bien
" Bonjour admin ! 1 utilisateurs sont connectés actuellement sur le site."
MAIS PAS l'option : administrer les annonces pour obtenir "Base des annonces"
Je n'arrive pas à trouver où se trouve l'erreur?
Pouvez-vous m'aider. Merci
Cordialement
Jean
- Déplacé Tagore Bandlamudi mercredi 7 juillet 2010 06:32 Forums Consolidation (Origine :Forum du coach ASP.NET)
Réponses
-
Bonjour,
Je crois qu'il y a encore un souci dans le fichier web.config à la racine du site, il n'est pas nécessaire de mettre une règle puisque par défaut tout est public. Vous pouvez supprimer la balise allow sur le rôle Administrateurs et donc réduire votre rubrique du fichier de config à :
<authentication mode="Forms"/>
<roleManager enabled="true"/>
En résumé, il faut que :
- la gestion des rôles soient activée dans le fichier de config à la racine du projet via la section <roleManager> (point 3.2 de l'atelier 5).
- la sécurité soit activée pour le fournisseur AspNetXmlSiteMapProvider (point 3.5 de l'atelier 5) via l'attribut securityTrimmingEnabled.
- que les règles d'accès s'enchaînent correctement dans l'organisation hiérarchique de vos fichiers de config.
Pour vérifier que cela fonctionne :
- Lancez l'application depuis Visual Studio sur la page d'accueil du site AffairesSansRisque. Normalement, vous devez voir un menu réduit aux seules pages publiques de la racine du site.
- Identifiez vous par exemple en tant qu'administrateur au travers de la page login.aspx. Le menu doit alors laisser apparaître de nouvelles pages, celles qui sont sous le répertoire 0 de votre site.
Cordialement,
Toutes les réponses
-
Bonjour,
Vous voulez dire que le menu ne vous affiche pas le lien qui donne accès à la page AdministrerAnnonces.aspx ?
Si c'est votre souci, il faut vérifier que sous le répertoire 0 il y a bien un fichier web.config donnant accès à la page au rôle des Administrateurs. Est-ce que c'est bien le cas ?
-
Bonjour Mademoiselle,
c'est effectivement ce que je voulais dire, il n'y a pas de lien.
J'ai vérifié et modifié pour forcer l'accès à administrerAnnonces.
Voici le Web.Config dans le répertoire 0 après modif :
<?
xml version="1.0" encoding="utf-8"?><
configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"><
system.web><
authorization><
deny users="*" /><
allow roles="Administrateurs" /></
authorization></
system.web></
configuration>ça ne marche toujours pas je n'ai pas le lien qui apparait.
Voici le code avant modification tel qu'il était.
<?
xml version="1.0" encoding="utf-8"?><
configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"><
system.web><
authorization><
deny users="*" /><
allow roles="UtilisateursAvecPouvoir" /></
authorization></
system.web></
configuration>Voici le web.Config donnant l'accès à l'administrateur sur la racine AffairesSansRisque :
...
<!--
Installe de nouveaux providers pour le service d'appartenance--><
roleManager enabled="true" /><
authorization><
allow roles="Administrateurs" /></
authorization>...
Voici le Web.sitemap tel qu'il est
<?
xml version="1.0" encoding="utf-8" ?><
siteMap enableLocalization="true" xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" ><
siteMapNode url="Default.aspx" title=" $resources: Web.sitemap, MenuItemHome , Accueil" description="Espace Accueil"><
siteMapNode url="ConsulterAnnoncesParRegion.aspx" resourceKey="MenuItemConsulterAnnonces"><
siteMapNode url="ConsulterAnnoncesJournaux.aspx" resourceKey="MenuItemConsulterJournaux"/></
siteMapNode><
siteMapNode url="1/DiffuserAnnonce.aspx" resourceKey="MenuItemDiffuserAnnonce"/><
siteMapNode url="1/Services.aspx?imagedirectory=~/Uploads" resourceKey="MenuItemServices"/><
siteMapNode url="0/AdministrerAnnonces.aspx" resourceKey="MenuItemAdministrerAnnonces"/><
siteMapNode url="QuiSommesNous.aspx" resourceKey="MenuItemQuiSommesNous"/></
siteMapNode></
siteMap>Voyez-vous le pourquoi de cette erreur ?
A+
Jean
-
Bonjour,
Inversez l'ordre des balises allow et deny dans le web.config sous le dossier 0 et cela devrait marcher
.
Il faut indiquer en premier les règles d'autorisation d'accès et seulement ensuite les règles de refus d'accès.
Lien utile : http://msdn2.microsoft.com/fr-fr/library/8d82143t(VS.80).aspx
Cordialement,
-
Bonjour mademoiselle,
J'ai inversé l'ordre des balises, mais rien n'a changé.
Vraiment je ne comprends pas. J'ai essayé de forcer l'accès de l'"administrateur" en ajoutant une autorisation sur les deux dossiers 0 et 1 dans l'outil d'administration ASP.NET.
Cela ne change rien à l'apparence dans le panneau de droite de "Gérer les règles d'accès" .
En me mettant sur le répertoire 0, on voit apparaître comme auparavant en faible intensité la ligne Autoriser -- Administrateurs --- mais l'icône du personnage n'est pas bordée comme pour la précédente ligne qui autorise "UtilisateursAvecPouvoir"
De surcroît, quand je m'indentifie comme un utilisateur avec pouvoir je n'ai pas non plus le lien "Administrer les annonces"
Je nage... je coule
Je compte sur vous pour m'envoyer la bouée...
A+
Jean
-
Bonjour,
Je crois qu'il y a encore un souci dans le fichier web.config à la racine du site, il n'est pas nécessaire de mettre une règle puisque par défaut tout est public. Vous pouvez supprimer la balise allow sur le rôle Administrateurs et donc réduire votre rubrique du fichier de config à :
<authentication mode="Forms"/>
<roleManager enabled="true"/>
En résumé, il faut que :
- la gestion des rôles soient activée dans le fichier de config à la racine du projet via la section <roleManager> (point 3.2 de l'atelier 5).
- la sécurité soit activée pour le fournisseur AspNetXmlSiteMapProvider (point 3.5 de l'atelier 5) via l'attribut securityTrimmingEnabled.
- que les règles d'accès s'enchaînent correctement dans l'organisation hiérarchique de vos fichiers de config.
Pour vérifier que cela fonctionne :
- Lancez l'application depuis Visual Studio sur la page d'accueil du site AffairesSansRisque. Normalement, vous devez voir un menu réduit aux seules pages publiques de la racine du site.
- Identifiez vous par exemple en tant qu'administrateur au travers de la page login.aspx. Le menu doit alors laisser apparaître de nouvelles pages, celles qui sont sous le répertoire 0 de votre site.
Cordialement,