如何检测Silverlight应用程序的用户是否已登录到服务器?

时间:2010-08-19 07:08:05

标签: asp.net-mvc silverlight

我正在寻找一个很好的干净解决方案来检测用户在执行Web请求时是否已从Silverlight注销ASP.NET MVC应用程序。

问题是该网站有一个Silverlight组件,用户可能会花费大部分时间,从而让他退出网站。 Silverlight组件中的某些操作会触发对服务器的Web请求(使用WebClient),通常会获得JSON结果。但是如果用户已经注销,我得到的结果是系统登录页面的HTML(当请求被重定向时)。

我可以检查响应是否是有效的JSON结果,但如果我稍后需要引入其他响应类型,则会失败。我也可以开始解析响应流,看看它是否包含登录页面中的元素,但这看起来非常不优雅和脆弱。也许通过返回已知的错误响应,以某种方式配置MVC以响应来自特定源的请求。

修改

使用Fiddler我发现我可以查找HTTP请求的302响应代码。但是,事实证明,您无法从Silverlight中的WebClient类派生,因此我无法轻松获取状态代码。我考虑使用WebRequest类,但对于我想做的事情来说它似乎有点太低了。我目前的解决方案是解析响应流的第一行。

1 个答案:

答案 0 :(得分:0)

如果您使用带有Cookie的表单身份验证,则可以尝试检查Cookie是否存在。 以下链接显示了如何访问SL中的cookie:

http://msdn.microsoft.com/en-us/library/dd920298(VS.95).aspx