Tenemos un requisito en el que nos gustaría redirigir al usuario a una página de inicio de sesión cuando expira la sesión de ASP.NET y el usuario está trabajando en un complemento de Silverlight.Tiempos de espera de sesión de Silverlight, RIA y ASP.Net
Por lo tanto, el escenario es que tenemos una aplicación heredada que ejecuta ASP.Net, todos nuestros nuevos módulos están en Silverlight, y la aplicación heredada carga la aplicación Silverlight. Todo funciona :-) El usuario se retira de su escritorio y regresa después de que la sesión ASP.Net termina, pero luego intenta continuar haciendo algo en la aplicación Silverlight, que usa un servicio de dominio RIA. Como la sesión tiene tiempo de espera, el servicio de dominio RIA falla, pero no falla con una excepción de SessionExpired, ni con un usuario/contraseña no válida, simplemente falla con una excepción de dominio que es similar a las excepciones "reales" lanzadas en el dominio modelo, por lo que no tenemos forma de identificar que esta vez fue porque la sesión expiró.
Hay muchas respuestas sobre cómo mantener viva su sesión ASP.Net, no queremos hacer eso, queremos que la sesión expire, pero queremos poder manejarla con elegancia en Silverlight y dirigir al usuario a la página de inicio de sesión.
Tenemos esto funcionando, pero el problema es siempre que se produce una excepción en la aplicación de Silverlight, esto lo redirige a la página de inicio de sesión, que no es el comportamiento previsto. Solo queremos redireccionar cuando se trata de un caso de caducidad de la sesión.
¿Alguna idea?
Debería abrir la ventana RegistrationWindow, en lugar de tratar de volver a cargar HtmlPage. Esta es una respuesta mucho mejor: http://stackoverflow.com/a/8083744/178620 –
Muchas gracias por su consejo. Tiene razón si usa una ventana de inicio de sesión/registro de Silverlight. Prefiero usar la autenticación de formularios asp.net y un formulario web HTML para el inicio de sesión, porque un usuario malintencionado no puede descargar la aplicación Silverlight sin iniciar sesión. En estas circunstancias, mi respuesta sigue siendo la correcta y prefiero su solución. – slfan
Veo de dónde vienes ahora: la pregunta especifica RIA y la mayoría de las personas simplemente usarán RegistrationWindow. Si no le importa actualizar su respuesta con su perspectiva, podré quitarle el voto negativo. –