关于silverlight实现session
弱弱的文一下 silverlight怎么实现session的效果啊,我发现我做的时候没办法实现哦。。。不用cookies,这样不安全,还有什么办法实现啊??
[解决办法]
Session是属于服务器端的概念,Silverlight作为客户端没有Session,但是你可以通过Web service传送变量到服务器端,可以将session保存在web service,以便下一次调用。如果使用Session,需要兼容ASP.NET,所以需要进行以下设置:
1. 在web.config, 找到system.serviceModel, 加入下面代码:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
2. 在你的WCF service类, 加入属性:
[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]
3. 最后根据下面的代码来调用asp.net Session
HttpContext.Current.Session["YourName"] = something;
object something = HttpContext.Current.Session["YourName"];
另外,如果安全性要求不高,推荐使用Isolatedstorage,开发比较容易,退出时候,删除清空就好。
using System;using System.Collections.Generic;namespace SessionDemo{ public static class SessionManager { private static Dictionary<string, object> session = new Dictionary<string, object>(); public static Dictionary<string, object> Session { get { return SessionManager.session; } set { SessionManager.session = value; } } }}SessionManager.Session["uname"] = "jv9";txbUname.Text = SessionManager.Session["uname"].ToString();