У нас есть требование, при котором мы хотим перенаправить пользователя на страницу входа, когда истекает срок сеанса ASP.NET и пользователь работает в плагине Silverlight.
Итак, сценарий таков: у нас есть старое приложение, которое работает на ASP.Net, все наши новые модули находятся в Silverlight, а старое приложение загружает приложение Silverlight. Это все работает :-) Затем пользователь уходит со своего рабочего стола и возвращается после истечения времени сеанса ASP.Net, но затем пытается что-то сделать в приложении Silverlight, которое использует доменную службу RIA. Поскольку время сеанса истекло, служба домена RIA завершается с ошибкой, но не с ошибкой SessionExpired или с неверным именем пользователя / паролем, она просто завершается с исключением домена, которое похоже на «реальные» исключения, генерируемые в домене. модель, поэтому мы не можем определить, что на этот раз это произошло потому, что сеанс истек.
Существует множество ответов на вопрос о том, как сохранить ваш сеанс ASP.Net живым, мы не хотим этого делать, мы хотим, чтобы сеанс истек, но мы хотим иметь возможность обрабатывать его изящно в Silverlight и направлять пользователя к страница входа.
У нас это работает, но проблема в том, что всякий раз, когда в приложении Silverlight возникает исключение, это перенаправляет вас на страницу входа, что не является предполагаемым поведением. Мы хотим перенаправить только в случае истечения сеанса.
Есть идеи?