会话超时将Silverlight重定向到登录页面

时间:2011-07-06 01:57:11

标签: silverlight session redirect

我有一个使用简单Login.aspx页面的silverlight应用程序。我有所有基本的ASP.NET配置,它适用于会话过期或丢失时的页面请求。但是silverlight服务请求不是页面请求,而是在查找application/msbin序列化数据。因此,当这些请求到达过期会话时,它们将被重定向到登录页面,它们会跟随并最终吞噬HTML内容(登录页面标记)。当然,正如我所料,这会以内容/解析错误结束。

所以我的问题是,当服务器发现会话已过期时,我必须做些什么才能让Silverlight服务响应以某种方式重定向浏览器。

我以前用Javascript手写这个,并且必须让ajax响应处理程序检测到一个自定义标头,这样才能做document.location = newPath。这些方面的东西会很好。

另外,我对我读过的其他解决方案并不感兴趣,因为我们不需要在客户端内部实现定时器和自定义会话管理器。希望我错过了某个地方的设置。

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题。不幸的是,这不是一个简单的设置。我记录了一个可能的解决方案here。在会话超时之后,对RIA服务的调用返回一个DomainServiceException,它将在中央的Unhandled_Exception处理程序中处理。如果用户未经过身份验证,我只需重定向到主页面。