none
Aplicación web .net no funciona al hacer login si no pongo la página de login en la URL RRS feed

  • Pregunta

  • Hola,

    Tenemos una aplicación creada con Visual Studio 2010 para gestionar las incidencias internas de la empresa. Está montada sobre un servidor Windows 2008 R2, en un IIS 7.5

    El caso es que la aplicación tiene una página de inicio login.aspx que valida la seguridad contra la seguridad de ASP. 

    En IIS 7.5 le hemos dicho que la página de inicio es login.aspx de manera que si ponemos http://servidor vamos directamente a la página de inicio.

    Esa página solo tiene las casillas de usuario y contraseña para validar contra la seguridad de asp.

    El caso es que si accedemos a http://servidor y ponemos el usuario y la contraseña no hace nada, es decir, no entra en la aplicación, no muestra ningún mensaje de error, simplemente se vuelve a cargar la página de inicio.

    Pero si vamos a http://servidor/login.aspx y ponemos usuario y contraseña entramos perfectamente en la aplicación.

    Hemos comprobado que en ambos casos la página que se muestra es la misma, pero en un caso funciona (cuando ponemos al final login.aspx) y en el otro no, y hemos comprobado que en el IIS está configurada la página de inicio a login.aspx.

    ¿Alguien tiene alguna idea de qué puede estar pasando y como solucionarlo?

    Gracias

    miércoles, 13 de febrero de 2013 17:33

Todas las respuestas

  • Hola Jorge22!

    Normalmente, la seguridad de las aplicaciones .Net se maneja desde el mismo .Net Framework. ¿Qué quiero decir con esto? Que la redirección hacia el login.aspx debería hacerse desde la configuración del Web.config y la seguridad de .Net con Membership Provider y Role Provider (depende el caso se utiliza o no el primero, segundo o ambos). Pero definitivamente no se debe hacer desde la configuración del IIS con la "Default Page".

    Vamos a un ejemplo práctico:

    • Normalmente las aplicaciones .net tienen como default page una página del sitio.
    • Si un usuario no autenticado desea ingresar, "Membership Provider" de .Net Framework (si es que trabaja con esta funcionalidad) redireccionará al usuario anónimo a la página de login indicada en el archivo web.config, la cual tiene disponible acceso anónimo.
    • Luego de autenticarse, si las credenciales son correctas, el usuario hace un URL Back a la página inicialmente solicitada por el usuario, el cual como ahora está autenticado y tiene una sesión válida en el IIS podrá pasar.

    Te sugiero revises la documentación de la aplicación interna que mencionás, o consultes con los programadores en cómo debe estar configurado el web.config u otros requisitos. Este no es un problema del IIS!

    Esperamos tu feedback.

    Saludos!!


    Pablo Ariel Di Loreto
    IT Consultant

    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

    jueves, 14 de febrero de 2013 5:45
  • Hola Jorge22!

    ¿Cómo estás? ¿Te ha sido de utilidad la respuesta? ¿Pudiste resolver tu problema?

    Esperamos tu feedback!

    Saludos!!


    Pablo Ariel Di Loreto
    IT Consultant

    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

    martes, 19 de febrero de 2013 2:31
  • Hola Pablo,

    En principio no nos ha funcionado. Hemos configurado en el webconfig, tal y como nos dijiste para quitar del IIS la redirección pero no funciona. En realidad al ponerlo en el web.config luego el IIS lo tiene dentro de sus default pages.

    El caso es que sigue pasando lo mismo. Si vamos a http://miservidor/login.aspx funciona perfectamente, pero si vamos a http://miservidor aunque la página que se muestra es la de login, login.aspx no hace nada. Al hacer login no hace nada, simplemente se borra el formulario (las casillas de usuario y contraseña) pero no hace nada ni sale mensaje de error, nada.

    ¿Alguna idea?

    Gracias

    miércoles, 20 de febrero de 2013 8:58
  • Hola Jorge22!!

    Gracias por el update! Suponiendo que la aplicación utiliza "Membership Provider" de .Net, en primera instancia la página login.aspx como default page no debería figurar:

    • Ni en el Web.config.
    • Esto debería generar que tampoco esté en los default pages (si utilizás Framework integrado).

    Una vez hecho esto, y te repito suponiendo que se utiliza "Membership Provider" de .Net, se debería configurar el web.config para hacer uso de la página de login, habilitar la redirección posterior al login y aspectos de authorización. Te voy a dar un ejemplo para serte más gráfico de un web.config (parte) que tiene como login page la página login.aspx:

    <system.web>
        <authentication mode="Forms" >
          <forms loginUrl="login.aspx"
            name=".ASPXFORMSAUTH" />
        </authentication>
        <authorization>
          <deny users="?" />
        </authorization>
        <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
          <providers>
            <clear />
            <add 
              name="SqlProvider" 
              type="System.Web.Security.SqlMembershipProvider" 
              connectionStringName="SqlConnection"
              applicationName="MyApplication"
              enablePasswordRetrieval="false"
              enablePasswordReset="true"
              requiresQuestionAndAnswer="true"
              requiresUniqueEmail="true"
              passwordFormat="Hashed" />
          </providers>
        </membership>
    </system.web>

    En este caso (solo es un EJEMPLO) se utiliza como loginUrl la página "login.aspx", los usuarios no autenticados van a redireccionarse a dicha página para que se puedan autenticar, y el provider es "SQLProvider" donde figuran los datos de los usuarios, sus contraseñas, y más abajo te encontrarás con opciones como habilitar reseteo de password, pregunta de seguridad, etc. Esto es solo un ejemplo de cómo la aplicación .Net maneja, a través de membership provider, la autenticación y autorización con el redireccionamiento a la página web originalmente pedida.

    Por esto es que te comentaba que tu problema, en primera instancia, no tiene nada que ver con la configuración IIS. Normalmente, la seguridad de las aplicaciones .Net se maneja desde el mismo .Net Framework. La redirección hacia el login.aspx debería hacerse desde la configuración del Web.config y la seguridad de .Net con Membership Provider. Pero definitivamente no se debe hacer desde la configuración del IIS con la "Default Page".

    Te sugiero revises la documentación de la aplicación interna que mencionás, o consultes con los programadores en cómo debe estar configurado el web.config u otros requisitos. Este no es un problema inicialmente del IIS!!

    Avisanos cualquier update que tengas.

    Saludos!!


    Pablo Ariel Di Loreto
    IT Consultant

    This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing!

    miércoles, 20 de febrero de 2013 16:04
  • Gracias. Voy a revisarlo y te digo.
    lunes, 25 de febrero de 2013 12:37