Silverlight 是客户端控件。它们执行在客户端浏览器上,他们不能直接访问服务器端的数据。
由于 Session 存在于 Web服务器上,Silverlight控件不能直接方法他们。有几种方法Silverlight可以访问服务器端数据包括Session信息。
现在探讨一些从 Silverlight 控件访问 Session 信息的方案。
选项 1 :将 Session数据放到客户端以VIEWSTATE数据形式或 UI 控件数据形式。这样做的缺点是数据不安全,仅能发送少量数据,数据对用户是可以见的。
选项 2 :使用 Silverlight控件的InitParameters属性将信息传递给Silverlight控件。这样的方式也有数据不安全,只有少量数据可以发送等问题。
选项 3 :调用 WCF 服务从服务器检索数据。这种方式, Silverlight 控件可以调用 WCF 服务检索大量数据,没有上面2方面的缺点。
使用 WCF 从服务的获取 Session数据到Silverlight 控件,你需要做的是创建一个简单的WCF 访问。这个服务应该有一个方法获取Session 键值作为输入参数并返回Session 对应的值,如下所示:
[OperationContract ]
public object GetSessionVariable(string key) {
return System.Web.HttpContext .Current.Session[key];
}
Silverlight入门知识学习目录