2010-09-02 6 views
34

Sto utilizzando l'autenticazione moduli ASP.Net. Il mio Web.config ha questo aspetto.Consentire l'accesso per utenti non identificati a una pagina specifica utilizzando l'autenticazione moduli ASP.Net

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

Così attualmente ogni pagina di aspx richiede l'autenticazione.

Desidero consentire l'accesso anche a utenti non autenticati a una pagina specifica denominata special.aspx. Come posso fare questo?

+0

hai mai capito questo? –

risposta

44

Date un'occhiata a l'esempio a 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

Quando si utilizza questa tecnica per '' consente all'utente non autenticato l'accesso alla pagina specifica che desidero ("yay"), ma richiede comunque le proprie credenziali? Puoi chiuderlo e visualizzare la pagina bene, ma mi chiedo come disabilitare "Autenticazione richiesta" per la pagina specifica? –

+0

@TrevorNestman stai caricando altre risorse sulla pagina come immagini, ecc? Probabilmente stanno chiedendo l'autenticazione. – dnolan

+0

@dnolan grazie per la risposta. Sono stato in grado di capirlo. Chiedo in che ruolo si trovavano all'interno della vista, quindi sono abbastanza sicuro che sia quello che lo stava spingendo. –

15

Mettere quanto segue nel web.config:

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

Consentire a tutti di accedere a una determinata pagina

A volte si desidera consentire l'accesso del pubblico a qualche pagina e vogliono limitare l'accesso al resto del sito solo per gli utenti registrati/autenticati .i.e. non consentire l'accesso anonimo. Supponiamo che il file special.aspx si trovi nella cartella principale del tuo sito. Nel web.config della cartella principale del tuo sito web devi avere la seguente configurazione.

<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> 
Problemi correlati