2011-04-13 14 views
6

Estoy escribiendo una aplicación web asp.net. Escribí una página de inicio de sesión que autentica a un usuario y almacena su UserID en el Session["UserID"]. Cada página de la aplicación web comprobará si hay un Session["UserID"] válido. Si no es válido, redirija al usuario a la pantalla de inicio de sesión.asp.net - ¿Mantiene la sesión mientras depura y reconstruye la solución?

Esto funciona muy bien, pero está ralentizando mi capacidad para depurar todas las páginas de mi sitio web. Cada vez que realizo un cambio en un archivo *.cs, necesito presionar F6 para reconstruir mi solución. Hacer esto destruye mi sesión, lo que significa que tengo que volver a la pantalla de inicio de sesión, escribir mi nombre de usuario y contraseña, hacer clic en la página en la que estaba trabajando, hacer mis pruebas, hacer cambios de código en mi código y repetir.

¿Hay alguna manera de mantener viva mi sesión cada vez que vuelvo a construir mi solución para que no tenga que ir a la página de inicio de sesión cada vez?

Respuesta

3

Lamentablemente, no sé si encontrará alguna forma de evitar esta limitación. Cada vez que construyes tu proyecto, vas a activar un reinicio de la aplicación web. Incluso si usara una tienda persistente para mantener las sesiones, perderá la cookie de sesión configurada en su navegador.

Puede agregar una función de "recordarme" a su aplicación. Tendrá que hacer una pequeña reimplementación, para mantener la información sobre la autenticación de usuario actual en un almacén de datos que es menos volátil que el estado de sesión de ASP.NET. Además, almacenará el índice de esa información en una cookie que es más persistente que una cookie de sesión.

Eso es lo mejor que puedo pensar, o al menos es lo mejor que puedo pensar sin algunas extensiones significativas a los proveedores de seguridad .NET. Sin embargo, tómelo con un grano de sal: nunca intenté resolver este problema en particular antes, y apenas me considero un experto en todas las cosas relacionadas con ASP.NET.

2

La razón por la que pierde su sesión es porque su aplicación se reinicia cuando escribe en la carpeta de la aplicación. De hecho, sucede lo mismo cuando publica su aplicación, cada usuario actualmente conectado perderá su sesión.

Esto es intencional porque no tienen manera de saber que las DLL que estaba usando en su página todavía están allí o no. Entonces, en su lugar, supervisan las carpetas y desencadenan un reinicio cuando les escribes.

No hay solución para esto. De hecho, es una función que le ahorra tiempo (la mayoría de las veces), imagínese rastrear errores de corrupción de memoria porque los indicadores se movieron en su código.

Cuestiones relacionadas