Pregunta

¿Hay alguna manera de proporcionar una función de cierre de sesión para un sitio que utiliza ASP clásico, y que utiliza la autenticación de Windows (es decir, las carpetas restringidas han establecido sus permisos a través del sistema operativo del servidor y nombres de usuario / contraseñas se almacenan en Active Directory)?

Si hace alguna diferencia, se ejecuta el servidor IIS 5.0. El cierre de sesión tiene que trabajar para IE (6, 7, y 8) y Firefox por lo menos.

Tenga en cuenta que este es un viejo y bastante grande sitio - muchos cientos de páginas ASP individuales - lo que cualquier solución que implique el cambio de páginas individuales simplemente no va a funcionar. (Por la misma razón, así como la cortesía básica, por favor no sugerir cambiar a asp.net.)

Lo que he encontrado hasta ahora sugiere que el envío de un código de respuesta 401 podría causar algunos navegadores para desactivar la autenticación, pero (1) No sé cómo hacer eso, y (2 ) yo realmente prefiero algo que realmente funciona, y no sólo tiene una remota posibilidad de trabajar. También sé que jugando con el objeto Session (.Abandon, por ejemplo) sería completamente inútil, porque eso no es donde se realiza la autenticación.

¿Fue útil?

Solución

La utilización del término "cerrar sesión" es confuso. Por lo general, los sitios de sus reposibility para administrar nombres de usuario / outs y esto normalmente se realiza utilizando el objeto de sesión, pero esto no es lo que está hablando.

percibo dos cosas posibles que se puede estar hablando.

Conexión de autenticación

En primer lugar el hecho de que la autenticación del tipo realizado por seguridad integrada de Windows se realiza a nivel de conexión. Una vez que una conexión ha sido autenticada que conexión (que bajo HTTP / 1.1 es por defecto mantenido en un estado abierto) se puede utilizar sin más necesidad de que los apretones de manos autenticaciones.

Puede ser posible para convencer al cliente o servidor para cerrar la conexión mediante la inclusión de la cabecera Connection: close en la respuesta, pero esto en realidad no puede dar lugar a la conexión se cierra.

Además, un cliente puede tener 2 o más autenticados conexiones abiertas a la vez. Este caso el enfoque anterior sólo se cerraría uno de ellos.

La conclusión aquí es que no es poco lo que puede hacer acerca de las conexiones autenticadas a un nivel por sesión.

almacenamiento en caché de credenciales

IE caché las credenciales de un usuario entra por un inicio de sesión de red a un sitio específico para la duración de la sesión IE. Así que incluso si las arregló para cerrar las conexiones autenticadas existentes IE simplemente volver a utilizar las credenciales almacenadas en caché para completar cualquier protocolo de autenticación subsiguiente silencio. Puede ser posible configurar el cliente no hacer esto, pero dudo que esto es algo que se puede utilizar.

Conclusión

La respuesta a (al menos la cuestión percibo que está pidiendo) es: no se puede no

.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top