web-dev-qa-db-fra.com

Autoriser l'accès des utilisateurs non identifiés à une page spécifique à l'aide de l'authentification par formulaire ASP.Net

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?

42
etoisarobot

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>
54
Chase Florell

Mettez ce qui suit dans votre web.config:

  <location path="special.aspx">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
17
patmortech

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>
2
lipika chakraborty
<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

http://weblogs.asp.net/gurusarkar/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config

2
Rae Lee