У меня есть приложение Silverlight 4. Моя задача состоит в том, чтобы уведомить пользователя Silverlight о том, что его сеанс ASP.NET скоро истекает, с помощью простого диалогового окна, говорящего что-то вроде: «Ваш сеанс вот-вот истекает, вы хотите сбросить сеанс?» с двумя кнопками [Да] и [Нет]. Когда пользователь нажимает [Да], я хотел бы обновить сеанс ASP.NET, иначе я бы просто позволил ему истечь. Какую методологию лучше использовать здесь?
Я просматривал разные форумы, и большинство людей просто время от времени просто опрашивают сервер со страницы, на которой размещено приложение Silverlight. Это не подойдет для меня. Я думал о создании одноэлементного DispatcherTimer, который будет запускаться при запуске приложения Silverlight, будет извлекать значение Session.Timeout с сервера с использованием WCF и будет работать в течение (Session.Timeout - некоторая дельта) минут. Когда таймер истекает, он открывает окно уведомлений. Более того, так как это окно уведомлений должно появляться только после периода бездействия, я хотел бы сбрасывать этот таймер каждый раз, когда выполняется вызов WCF (который по существу определяет активность). Это звук? Есть ли лучшие методы? Что ты думаешь?
P.S. Я также планирую сделать нечто подобное для тайм-аута форм.