我正在寻找一个很好的干净解决方案来检测用户在执行Web请求时是否已从Silverlight注销ASP.NET MVC应用程序。
问题是该网站有一个Silverlight组件,用户可能会花费大部分时间,从而让他退出网站。 Silverlight组件中的某些操作会触发对服务器的Web请求(使用WebClient
),通常会获得JSON结果。但是如果用户已经注销,我得到的结果是系统登录页面的HTML(当请求被重定向时)。
我可以检查响应是否是有效的JSON结果,但如果我稍后需要引入其他响应类型,则会失败。我也可以开始解析响应流,看看它是否包含登录页面中的元素,但这看起来非常不优雅和脆弱。也许通过返回已知的错误响应,以某种方式配置MVC以响应来自特定源的请求。
修改
使用Fiddler我发现我可以查找HTTP请求的302响应代码。但是,事实证明,您无法从Silverlight中的WebClient
类派生,因此我无法轻松获取状态代码。我考虑使用WebRequest
类,但对于我想做的事情来说它似乎有点太低了。我目前的解决方案是解析响应流的第一行。
答案 0 :(得分:0)
如果您使用带有Cookie的表单身份验证,则可以尝试检查Cookie是否存在。 以下链接显示了如何访问SL中的cookie:
http://msdn.microsoft.com/en-us/library/dd920298(VS.95).aspx