• Silverlight 实现session


    由于silverlight运行在客户端,我们只能模拟出session  首先定义一个SessionManager类

     
    using System;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Ink;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Collections.Generic;
    
    namespace WebUPGIS.controls
    {
        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; }
            }
    
        }
    }
    
    再通过各种方式把asp.net的session传递给silverlight  例如
    1.通过请求页面 **.apsx?key=value 传给一个包含silverlight的页面 然后 在sl中获取
     
               IDictionary<String, String> paras = HtmlPage.Document.QueryString;
                if (paras.ContainsKey("userName"))
                {
                    this.button1.Content = paras["userName"];
                }
    2.如果包含silverlight的页面是aspx页面 可以先在页面后台的load中获取session 存放在hidden里面
     
     
    最后把session值保存到SessionManager中,例如
     
                HtmlDocument document = HtmlPage.Document;
                string hiddenStr = document.GetElementById("hiddenStr").GetAttribute("value");
                if(hiddenStr!="")
                {
                    string[] userInfo = hiddenStr.Split(';');
                    SessionManager.Session["userName"] = userInfo[0];
                    SessionManager.Session["userID"] = userInfo[1];
                }
    
                this.button1.Content = SessionManager.Session["userName"].ToString();
     
    在需要使用session的地方 用SessionManager.Session["sessionName"] 即可
    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    libevent-2.0.so.5 (安装MEMCACHED问题)
    MySQL的show语句大全
    远程客户端连接MysqL数据库太慢解决方案
    用SQL命令查看Mysql数据库大小
    elasticsearch-head安装及启动
    logstash收集IIS日志
    备份并删除7天以前数据
    shell脚本递归压缩实践
    二目运算符 “->”
    关于int main( int argc, char *argv[] )
  • 原文地址:https://www.cnblogs.com/Areas/p/2154612.html
Copyright © 2020-2023  润新知