问题是这样的:
    在ISS里同一网站下有2个虚拟目录A跟B,A里面的程序是用VS2003写的,B里面的程序是VS2005写的.服务器已经安装了Microsoft .NET Framework 2.0,A、B均可运行.问题是:要从A里面Send.aspx页面传Session到B里面的Recieve.aspx页面,
怎样才能实现这2个页面共享Session.
    请高手指教!问题解决可再给100分!

解决方案 »

  1.   

    .net 2005里有个statserver可以把所有的session转存到sql2005里
    从而实现session共享  不过据说比较慢且不能做IIS集群
      

  2.   

    只是知道这么弄可以解决多台机器之间的session共享
    你的是两个站点(或者两个虚拟目录)肯定没问题.
    只不过我从来没这么做过 呵呵
      

  3.   

    楼上说的对,session有好几种模式,请查相关资料!
      

  4.   

    可以使用Cookies代替Session 如果使用Session是解决不了这个问题的,除非借助第三方介质,劝LZ改用Cookies吧
      

  5.   

    Application之间 没有直接的办法来共享Session楼主最好还是 使用Cookie 基于 同一个域 来解决这个问题吧
    cookie.Domain 设置成一样的郁闷或IP即可
      

  6.   

    cookie无法跨网站读取吧??我的是同一服务器下2个网站
      

  7.   

    对,建议还是用加密了的Cookie比较好,
    一般的数据传输就用URL,
    这样以后扩展也很方便的,
    全球各地的服务器都行。
      

  8.   

    强硬点,直接在两个页面用Socket通信
      

  9.   

    不知道用state server可不可以
      

  10.   

    请高手给个用cookie解决问题的例子,成功马上给分,200
      

  11.   

    A写Cookies:
    ------------
     /// <summary>
            /// write cookie value
            /// </summary>
            /// <param name="CookieName">cookie name</param>
            /// <param name="Nvc">NameValueCollection</param>
            /// <param name="days">cookie date</param>
            /// <param name="Domain">Domain</param>
            /// <returns>bool</returns>
            public static bool WriteCookie(string CookieName, NameValueCollection Nvc, int day,int Hours, string Domain)
            {
                bool ReturnBoolValue = false;
                if (Nvc != null && !string.IsNullOrEmpty(CookieName))
                {
                    HttpCookie httpCookie = new HttpCookie(CookieName);
                    for (int i = 0; i < Nvc.Count; i++)
                    {
                        httpCookie[Nvc.GetKey(i)] = Nvc.Get(i);
                    }                int Time = 0;                if (day != 0)
                    {
                        Time = 24 * day;
                    }                httpCookie.Expires = DateTime.Now.AddHours(Time + Hours);
                    if (!string.IsNullOrEmpty(Domain))
                    {
                        httpCookie.Domain = Domain;
                    }
                    HttpContext.Current.Response.Cookies.Add(httpCookie);
                    ReturnBoolValue = true;
                }
                return ReturnBoolValue;
            }
    B读Cookies
    -------------------
      /// <summary>
            /// get cookie 
            /// </summary>
            /// <param name="CookieName">cookie name</param>
            /// <returns>NameValueCollection</returns>
            public static NameValueCollection GetCookie(string CookieName)
            {
                NameValueCollection Nvc = new NameValueCollection();
                if(!string.IsNullOrEmpty(CookieName))
                {
                    Nvc = HttpContext.Current.Request.Cookies[CookieName].Values;
                }
                return Nvc;
            }
      

  12.   

    使用:
    在A中写:
                NameValueCollection NV=new NameValueCollection();
                NV.Add("UserName","lxsfg");
                NV.Add("Password","123456");
                WriteCookie("UserInfo", NV, 1, 2, "CSDN.NET");
    在B中读:
              NameValueCollection NV=GetCookie("UserInfo");
      

  13.   

    谢谢,我去试试,我用2个不同版本的VSS写的2个网站,如果用Cookie,用不用设置一些IIS或者其他一些东西呢?
      

  14.   

    不用 保证两个Domain是一样的就可以了 比如 xxx.csdn.net 只要是这个格式的域名就可以
    另外在本地测试时如果指定域的话必须更改host文件用你指定的域来访问,否则是取不到Cookies的,你可以先把域设为空 或者拿到公网上测一下
      

  15.   

    当然得保证你的浏览器开启Cookies支持,不过99%的用户都会开启的