Bonjour,

dans une aplli ASP.NET MVC, j'ai un répertoire "Admin" dont je veux limiter l'accès.

Dans le web.config à la racine j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<location path="Admin">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>
pour limiter l'accès aux utilisateurs connectés, et dans le répertoire "Admin" où existe la page "AccueilAdmin.aspx" j'ai un 2° web.config :

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
 
    <location path="AccueilAdmin">
        <system.web>
            <authorization>
                <allow roles="Admin"/>
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
    <location path="AccueilAdmin.aspx">
        <system.web>
            <authorization>
                <allow roles="Admin"/>
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
Le problème est que tous les utilisateurs connectés (même ceux qui ne sont pas dans le rôle Admin) ont accès à AccueilAdmin.aspx, les règles d'autorisation ne sont pas appliquées!!!???

Par contre, si je regroupe les 2 locations dans le web.config à la racine, là ça fonctionne :

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
 
<location path="Admin">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>
<location path="Admin/AccueilAdmin">
        <system.web>
            <authorization>
                <allow roles="Admin"/>
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
Pourquoi le web.config dans le répertoire "Admin" n'est pas utilisé???

Merci.