Pregunta

Estoy tratando de usar formularios.signout pero a veces no cierra la sesión del usuario y todavía puede navegar por el sitio web.

¿Cómo puedo resolver esto? También configuré la autenticación de formularios web.config, pero todavía no funciona.

Estoy usando FormsAuthentication para autenticar a un usuario que pasa su inicio de sesión.

¡Gracias!

¿Fue útil?

Solución

No sé cuál es la causa, pero algunas cosas que podría considerar / probar

  • ¿aún pueden visitar páginas generadas por el servidor o simplemente están volviendo a las versiones en caché local? ¿Qué sucede cuando provocan una devolución de datos que tiene un código para verificar si están autenticados? ¿Funciona o falla? Creo que el significado posterior significa que están desconectados, pero que ven las versiones en caché de la página de inicio de sesión, en cuyo caso desea indicar al cliente que no almacene en caché las páginas utilizando para instancias:

    Response.Cache.SetExpires (DateTime.UtcNow.AddMinutes (-1)); Response.Cache.SetCacheability (HttpCacheability.NoCache); Response.Cache.SetNoStore ();

  • Puede intentar configurar manualmente la cookie para que caduque, pero esto es un hackeo

    FormsAuthentication.SignOut (); Context.Response.Cookies.Item (FormsAuthentication.FormsCookieName) .Expires = Date.Now; Response.Redirect (" ~ / Somewhere.aspx ");

Otros consejos

¿Tiene el usuario el dominio (o un dominio principal) en sus sitios de confianza o sitios de intranet? Recientemente me he encontrado con algunos problemas en los que un usuario está autenticado, pero es anónimo en circunstancias en las que esto es cierto. En mi caso, también podría ser que un sitio principal se haya configurado, al mismo tiempo, para permitir la autenticación integrada de Windows. He eliminado desde que eliminé eso, pero no pareció ayudar al problema. Todavía no he reiniciado IIS para ver si esto tendría un efecto. He recurrido a verificar que el usuario esté autenticado y no sea anónimo para garantizar que se muestren las partes adecuadas de la vista. En realidad, esto es más preciso aunque mi código de inicio de sesión debería evitar tener un inicio de sesión anónimo.

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