Cómo: Cerrar automáticamente un usuario desde una aplicación Web

Se recomienda encarecidamente a todos los usuarios que actualicen a la versión 7.0 de Microsoft Internet Information Services (IIS) que se ejecuta en Microsoft Windows Server 2008. IIS 7.0 aumenta considerablemente la seguridad de la infraestructura Web. Para obtener más información acerca de temas relacionados con la seguridad IIS, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de IIS 7.0, visite el siguiente sitio Web de Microsoft:

Resumen

Este artículo describe dos métodos que puede utilizar para iniciar sesión automáticamente a un usuario de la aplicación Web.

En el primer método, aprenderá sobre el encabezado de respuesta HTTP Refresh y cómo agregarlo a la página HTML para redirigir un usuario a una página de cierre de sesión.

En el segundo método, se utiliza HTML, páginas Active Server (ASP) y Microsoft Visual Basic Scripting Edition (VBScript) para producir una solución más sofisticada, utilizando el método de VBScript setInterval.

Requisitos


Los elementos siguientes describen el hardware recomendado, software, infraestructura de red, habilidades, conocimiento y service Pack que necesitan.

  • Internet Information Services (IIS) 3.0 o posterior.
  • Internet Explorer 4.0 o posterior.
También debe tener conocimiento de las acciones siguientes:

  • Conocimientos básicos de HTML.
  • Familiaridad con ASP y VBScript.

Utilice el encabezado de respuesta HTTP que un usuario cierre la sesión desde una aplicación Web

Lo primero y más fácil que un usuario cierre la sesión desde una aplicación Web es utilizar un encabezado de respuesta HTTP para redirigir el explorador después de un cierto período de tiempo.

  1. Abra un editor de texto como el Bloc de notas y, a continuación, escriba el siguiente contenido HTML:
    <HTML><HEAD>
    <META HTTP-EQUIV="REFRESH" CONTENT="10;URL=Logoff.htm">
    <TITLE>Redirect Demo</TITLE>
    </HEAD>
    <BODY>
    <H1>You will be logged out after 10 seconds</H1>
    </BODY>
    </HTML>

    La etiqueta < META > redirige el explorador a Logoff.htm después de diez segundos (a menos que el usuario actualiza la página o carga una página diferente). Incluso si el usuario está interactuando con la página en ese momento, se produce automáticamente la redirección de la página. En la práctica, un tiempo de espera de 20 minutos (1200 segundos) se utiliza normalmente con este tipo de redirección.
  2. Guarde este archivo como RedirectDemo.htm.
  3. Crear un nuevo archivo en el Bloc de notas y, a continuación, escriba el siguiente contenido HTML:
    <HTML><HEAD>
    <TITLE>Redirect Demo - Logoff Page</TITLE>
    </HEAD>
    <BODY>
    <H1>You have been logged out</H1>
    </BODY>
    </HTML>

  4. Guarde este archivo como Logoff.htm en la misma carpeta como RedirectDemo.htm.
  5. Inicie Internet Explorer y, a continuación, cargue RedirectDemo.htm. La página muestra el mensaje "Se cerrará después de 10 segundos."

    Después de diez segundos, el texto "que se han iniciado" aparece. Buscando en la barra de direcciones, puede ver que se le ha redirigido a Logoff.htm.

Utilice el método SetInterval para cerrar la sesión un usuario desde una aplicación Web

Si necesita más control sobre la redirección del explorador del usuario, puede utilizar el método window.setInterval en la secuencia de comandos. Esto hace que una subrutina para llamar a cada instancia del intervalo.

Cada vez que el usuario hace algo en la página, como hacer clic en un elemento o mover el cursor, puede borrar el intervalo antiguo y, a continuación, crear una nueva. Esto restablece eficazmente el intervalo a cero, el intervalo de retraso.

  1. Abra un editor de texto como el Bloc de notas y, a continuación, escriba el siguiente contenido ASP:
    <%@Language=VBScript%><%
    ' Prevent non-authenticated access
    If Session("UserID") = "" Then Response.Redirect("Logoff.asp")
    ' Prevent page from being cached
    Response.Expires = -1
    %>
    <HTML>
    <HEAD>
    <TITLE>setInterval Demo</TITLE>
    <SCRIPT LANGUAGE=VBScript>
    Dim timer

    Sub Init()
    ' Set up the timer. Set it for 5 seconds
    timer = window.setInterval("Logout", 5000)
    End Sub

    Sub Logout()
    ' Take whatever action is required at this point
    MsgBox "Logging out..."
    window.location = "Logoff.asp"
    End Sub

    Sub Delay()
    ' Delay the logout
    clearInterval(timer)
    Init
    End Sub
    </SCRIPT>
    </HEAD>
    <BODY OnLoad="Init"
    OnClick="Delay" OnMouseMove="Delay" OnKeyPress="Delay">
    This page is a test of automatic logout
    </BODY>
    </HTML>



    Los eventos OnClick, OnMouseMovey OnKeyPress de la etiqueta < BODY > interceptar cualquier interacción del usuario en la página entera y retrasar el intervalo. El usuario sólo está desconectado de la página si no hay actividad durante cinco segundos.
  2. Guarde este archivo como SetIntervalDemo.asp en la carpeta de Web predeterminada en el equipo (que suele ser C:\InetPub\wwwroot).
  3. Cuando el usuario está autenticado y debe utilizar la secuencia de comandos de servidor ASP en la parte superior de la muestra de código en el paso 1 en cada página segura para asegurarse de que sólo los usuarios autenticados pueden verlas, debe crearse la variable Session("UserID") .

    Para los fines de este ejemplo, cree un nuevo archivo en el Bloc de notas y, a continuación, escriba el siguiente contenido ASP:
    <%@Language=VBScript%><%
    Session("UserID") = "user"
    Response.Redirect "SetIntervalDemo.asp"
    %>
    <HTML>
    <HEAD>
    <TITLE>setInterval Demo - Establish Session</TITLE>
    </HEAD>
    <BODY>
    </BODY>
    </HTML>

  4. Guarde este archivo como StartSession.asp en la misma carpeta Web como SetIntervalDemo.asp.
  5. Crear un nuevo archivo en el Bloc de notas y, a continuación, escriba el siguiente contenido ASP de la página de cierre de sesión:
    <%@Language=VBScript%><%
    ' Flushes authentication information for the user and ends the session
    Session.Abandon
    %>
    <HTML>
    <HEAD>
    <TITLE>setInterval Demo - Logoff Page</TITLE>
    </HEAD>
    <BODY>
    <H1>You have been logged out</H1>
    </BODY>
    </HTML>

  6. Guarde este archivo como Logoff.asp en la misma carpeta Web como SetIntervalDemo.asp.

Comprobación

En Internet Explorer, escriba localhost/StartSession.asp en la barra de direcciones. Son inmediatamente redirige a la página SetIntervalDemo.asp y el texto "esta página es una prueba de cierre de sesión automático" aparece. La dirección barra ahora muestra "localhost/SetIntervalDemo.asp". Mientras mueve el cursor, haga clic con el mouse o presione las teclas en el teclado, no ocurre nada. Cinco segundos después de dejar de hacer nada, las redirecciones del explorador a Logoff.asp y el texto "que se han iniciado" aparece. Observe que la dirección barra ahora muestra "http://localhost/Logoff.asp".

Propiedades

Id. de artículo: 315584 - Última revisión: 22 ene. 2017 - Revisión: 1

Comentarios