J'utilise l'authentification par formulaire ASP.Net. Mon Web.config ressemble à ceci.
<authentication mode="Forms">
<forms loginUrl="login.aspx"/>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Donc, actuellement, chaque page aspx nécessite une authentification.
Je souhaite autoriser même les utilisateurs non authentifiés à accéder à une page spécifique nommée special.aspx. Comment puis-je faire ceci?
Jetez un oeil à l'exemple sur MS Support
<configuration>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
</forms>
</authentication>
<!-- This section denies access to all files in this
application except for those that you have not explicitly
specified by using another setting. -->
<authorization>
<deny users="?" />
</authorization>
</system.web>
<!-- This section gives the unauthenticated
user access to the ThePageThatUnauthenticatedUsersCanVisit.aspx
page only. It is located in the same folder
as this configuration file. -->
<location path="ThePageThatUnauthenticatedUsersCanVisit.aspx">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
<!-- This section gives the unauthenticated
user access to all of the files that are stored
in the TheDirectoryThatUnauthenticatedUsersCanVisit folder. -->
<location path="TheDirectoryThatUnauthenticatedUsersCanVisit">
<system.web>
<authorization>
<allow users ="*" />
</authorization>
</system.web>
</location>
</configuration>
Mettez ce qui suit dans votre web.config:
<location path="special.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
Autoriser tout le monde à accéder à une page particulière
Parfois, vous souhaitez autoriser l'accès public à certaines pages et restreindre l'accès au reste du site uniquement aux utilisateurs connectés/authentifiés .i.e. ne pas autoriser l'accès anonyme. Supposons que votre fichier special.aspx se trouve dans le dossier racine de votre site. Dans le web.config du dossier racine de votre site Web, vous devez avoir la configuration suivante.
<configuration>
<system.web>
<authentication mode="Forms"/>
<authorization> <deny users="?"/> //this will restrict anonymous user access
</authorization>
</system.web>
<location path="special.aspx"> //path here is path to your special.aspx page
<system.web>
<authorization>
<allow users="*"/> // this will allow access to everyone to special.aspx
</authorization>
</system.web>
</location>
</configuration>
<location path="register.aspx"> //path here is path to your register.aspx page
<system.web>
<authorization>
<allow users="*"/> // this will allow access to everyone to register.aspx
</authorization>
</system.web>
</location>
Pour plus de détails, suivez le lien ci-dessous