我可以在我的aspx页面和silverlight应用程序中共享会话变量吗?

时间:2011-06-17 10:05:28

标签: c# asp.net silverlight

我必须创建一个发布 - 订阅silverlight应用程序。发布事件的类在类库中。

我有一个.Net Web解决方案,其中包含Silverlight项目和一个asp.net Web项目。 asp.net项目使用类库中的一些类。这些类暴露了一些事件,一旦触发,我得到返回的数据并将它们存储在我的会话变量中。

我创建了几个会话变量 - 主要是List类型。

我想通过将用户重定向到包含silverlight插件的aspx页面来启动silverlight xaml页面。

我想使用会话变量中的List并在数据网格中显示它们。

我可以在aspnet和silverlight app之间共享会话变量吗?什么应该是实现这个推拉目标的最佳方法,当类抛出事件时,我获取数据并显示在silverlight图表中,当类发布新事件时图表会刷新?

2 个答案:

答案 0 :(得分:2)

您无法在ASP.NET和Silverlight之间共享会话变量。原因很容易理解:ASP.NET运行服务器端,Silverlight运行ClientSide。

但是,您可以通过Web服务调用从客户端获取这些信息。例如,使用WCF,您可以为WebService激活ASP.NET会话,并使用正确的序列化将服务中的这些信息发送到客户端。要获得良好的结果,需要很好地理解会话数据的序列化(例如,使用WCF,返回类型化数据)。

有关为WCF服务激活ASP.NET会话的信息,see this

请记住,因为默认的ASP.NET会话管理使用cookie来存储会话令牌客户端,如果您的Silverlight应用程序绕过浏览器网络堆栈,您将必须自己管理cookie。幸运的是,Silverlight默认使用浏览器堆栈。

答案 1 :(得分:1)

请查看“如何在Silverlight中访问ASP.NET会话?”

http://forums.silverlight.net/forums/t/167001.aspx#_Toc251772491

我希望它会有所帮助。