2010-09-02 5 views
34

J'utilise l'authentification par formulaires ASP.Net. Mon Web.config ressemble à ceci.Autoriser l'accès des utilisateurs non authentifiés à une page spécifique à l'aide de l'authentification par formulaires ASP.Net

<authentication mode="Forms"> 
     <forms loginUrl="login.aspx"/> 
    </authentication> 
    <authorization> 
     <deny users="?" /> 
    </authorization> 

Actuellement, chaque page ASPX nécessite une authentification.

Je souhaite autoriser l'accès même aux utilisateurs non authentifiés à une page spécifique nommée special.aspx. Comment puis-je faire cela?

+0

Avez-vous déjà trouvé cette photo? –

Répondre

44

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> 
+0

Lorsque j'utilise cette technique pour '' cela permet à l'utilisateur non authentifié d'accéder à la page spécifique que je veux ("yay"), mais il demande toujours ses informations d'identification? Vous pouvez le fermer et voir la page très bien, mais je me demande comment désactiver le "Authentification requise" pour la page spécifique? –

+0

@TrevorNestman chargez-vous d'autres actifs sur la page tels que des images, etc.? C'est probablement qu'ils demandent l'authentification. – dnolan

+0

@dnolan merci pour la réponse. J'étais capable de le comprendre. Je leur ai demandé quel était le rôle qu'ils jouaient dans la vue, alors je suis à peu près sûr que c'est ce qui l'a motivé. –

15

Mettez ce qui suit dans votre web.config:

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

Permettre à chacun d'accéder à une page particulière

Parfois, vous souhaitez autoriser l'accès du public à certaines pages et que vous souhaitez restreindre l'accès au reste du site uniquement aux utilisateurs enregistrés/authentifiées .i.e. n'autorise pas l'accès anonyme. Dites que votre fichier special.aspx se trouve dans le dossier racine de votre site. Dans le fichier 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> 
Questions connexes