2010-09-02 23 views
34

Estoy utilizando la Autenticación de formularios ASP.Net. Mi Web.config se ve así.Permitir el acceso de usuarios no autenticados a páginas específicas mediante la Autenticación de formularios ASP.Net

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

De modo que actualmente cada página aspx requiere autenticación.

Quiero permitir el acceso incluso a usuarios no autenticados a una página específica llamada special.aspx. ¿Cómo puedo hacer esto?

+0

¿Alguna vez te diste cuenta de esto? –

Respuesta

44

Tome un vistazo al ejemplo de 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

Al utilizar esta técnica para '', permite que el usuario no autenticado acceda a la página específica que quiero ("yay"), pero ¿sigue pidiendo sus credenciales? Puede cerrarlo y ver la página correctamente, pero me pregunto cómo desactivar la "Autenticación requerida" para la página específica. –

+0

@TrevorNestman ¿está cargando otros activos en la página, como imágenes, etc.? Es probable que estén pidiendo la autenticación. – dnolan

+0

@dnolan gracias por la respuesta. Pude resolverlo. Le pregunté qué papel tenían dentro de la vista, así que estoy bastante seguro de que eso fue lo que lo provocó. –

15

Ponga lo siguiente en su web.config:

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

Permitir que todo el mundo para acceder a una página en particular

veces que desea permitir el acceso del público a alguna página y desea restringir el acceso al resto del sitio sólo para usuarios autenticados/.i.e registrados. no permite el acceso anónimo Supongamos que su special.aspx está en la carpeta raíz de su sitio. En el archivo web.config de la carpeta raíz de su sitio web, debe tener la siguiente configuración.

<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> 
Cuestiones relacionadas