none
Proteger páginas RRS feed

  • Pregunta

  • Hola:

    estoy intentando proteger las páginas de mi aplicación. Sé que hay que poner un código en el web.config para esto. Pero no sé muy bien como hacerlo, ya que en mi caso 3 páginas han de permitir acceso a todos los usuarios: la principal donde se loguean, la página para recuperar contraseña y la página de suscripción.

    ¿Cómo especifico las páginas a las que puede acceder todo el mundo?.

    Muchas gracias por vuestra ayuda una vez más.

    Saludos,

    lunes, 4 de diciembre de 2006 17:16

Respuestas

  • Mira te comento:

    Yo lo hago así:

    Establezco en Web.Config el modo de autenticación:

    <authentication mode="Forms">

    <forms name=".NETALIA"/>

    </authentication>

    Y luego indico que páginas tiene que ser accedidas mediante un rol especial:

    <location path="admin.aspx">

    <system.web>

    <authorization>

    <allow roles="Administrators"/>

    <deny users="*"/>

    </authorization>

    </system.web>

    </location>

    Ok, pues todas las demas páginas de mi site que no sean admin.aspx serán accesibles pos usuarios anónimos.

    si tienes alguna duda, no dudes en consultarla.

    martes, 5 de diciembre de 2006 9:32

Todas las respuestas

  •  

    Hola,

    Hay muchisimas maneras de hacer lo que dices, te recomiendo esta que es muy sencilla para empezar

    http://support.microsoft.com/kb/301240/es

    Saludos.

    lunes, 4 de diciembre de 2006 19:02
    Moderador
  • Hola Javier;

    el problema está en que utilizo un formulario para loguear pero lo creé yo, no es el componente login de c#. Y cuando hago lo que me indica el artículo que me recomiendas no me funciona.

    Además tengo 3 páginas públicas que no sé como indicar que son de libre acceso.

    ¿Alguna idea?.

    Gracias.

    martes, 5 de diciembre de 2006 9:23
  • Mira te comento:

    Yo lo hago así:

    Establezco en Web.Config el modo de autenticación:

    <authentication mode="Forms">

    <forms name=".NETALIA"/>

    </authentication>

    Y luego indico que páginas tiene que ser accedidas mediante un rol especial:

    <location path="admin.aspx">

    <system.web>

    <authorization>

    <allow roles="Administrators"/>

    <deny users="*"/>

    </authorization>

    </system.web>

    </location>

    Ok, pues todas las demas páginas de mi site que no sean admin.aspx serán accesibles pos usuarios anónimos.

    si tienes alguna duda, no dudes en consultarla.

    martes, 5 de diciembre de 2006 9:32
  • Ok, gracias Luis. Esa era exactamente mi duda.

    He seguido al pie de la letra los pasos del siguiente articulo:

    http://www.dotnetcr.com/Libreria.aspx?art=104&tag=Creando-un-Sistema-Web-con-Autenticacion-Forms-en-C-Net-2005

    Y me ocurre lo siguiente:

    si no me logueo ninguna vez e intento escribir directamente la url de una página prohibida en la barra de navegación me redirige a la página de loguin, pero si ya me he logueado una vez y escribo la url directamente accede a la página.

    ¿Cómo puedo evitar que ocurra esto?.

    gracias una vez más.

    martes, 5 de diciembre de 2006 12:02
  • Pues si te digo la verdad no lo sé, puesto que lo que tu expones antes es el proceso tal cual funciona la autenticación basada en formularios y perdona mi pregunta pero, para que quieres hacer esa restricción???

    Salu2.

    martes, 5 de diciembre de 2006 13:29
  • La restricción la considero necesaria porque se trata de venta electronica de documentos, de forma que no interesa de ningún modo que se pueda acceder sin loguear.

    Pero me imagino que pierde importancia ya que hago control de sesión y da un error asiq no llega a completarse la descarga.

    Gracias Luis por tu tiempo y por tus aportaciones.

    Saludos

    martes, 5 de diciembre de 2006 15:44
  • Te entiendo Idhun, pero tu no puedes acceder a las páginas que especificas en el Web.config a menos que te logges, otra cosa es que una vez loggeada puedes acceder mediante la url a un recurso.

    No se si me explicado bien.

    Salu2.

    martes, 5 de diciembre de 2006 15:58
  • Hola Luis:

    el problema está en que si me logueo y luego abandono la aplicación y accedo a través de la URL a una de las páginas privadas lo hace. Si no se ha logueado nadie entonces no, te lleva a la página de login.

    Gracias por todo Luis.

    Saludos

    jueves, 7 de diciembre de 2006 8:47
  • No estarás haciendo esto por casualidad:

    FormsAuthentication.RedirectFromLoginPage(user, true)

    y estas creando una cookie persistente tipo cuando hotmail te recuerda el usuario y contraseña???

    Salu2 y ya me contarás

    PD: Mira este articulo http://www.15seconds.com/issue/020220.htm

    jueves, 7 de diciembre de 2006 11:24
  • En mi opinión deberías poner las páginas que son accesibles por todos los usuarios en el root de tu site, despues crear un nuevo directorio que contenga a la aplicación Web y configurar su web config para las restricciones de seguridad del resto de páginas de la aplicación. En cuanto al problema que comentas, lo único que tienes que hacer es configurar el web config para que la autenticación y autorización no sea persistida en la sesión.

    Saludos,

    Lorenzo B.

     

    jueves, 7 de diciembre de 2006 16:21