亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET二級域名站點共享Session狀態

2019-11-17 04:11:01
字體:
來源:轉載
供稿:網友

asp.net二級域名站點共享session狀態
我的前面一篇文章提到了如何在使用了ASP.NET form authentication的二級站點之間共享登陸狀態,http://www.49028c.com/jzywh/archive/2007/09/23/902905.html

今天, 我要寫的是如何在二級域名站點之間,主站點和二級域名站點之間共享Session。

首先, Session要共享,站點之間SessionID必須要一致,那怎么保證SessionID一致呢?

ASP.NET中的SessionID是存儲在客戶端的cookie之中鍵值為ASP.NET_SessionId用來維護瀏覽者Session對應關系的一個字符串,要想在二級域名站點之間,主站點和二級域名站點共享SessionID就必須先共享,那么我們就必須先實現ASP.NET_SessionId這一cookie的共享。

A: CrossDomainCookieModule

------------------------------------------------------------------------------------------------

public class CrossDomainCookie : IHttpModule
 {
        PRivate string m_RootDomain = string.Empty;

        #region IHttpModule Members

        public void Dispose()
        {

        }

        public void Init(Httpapplication context)
        {
            m_RootDomain = ConfigurationManager.AppSettings["RootDomain"];
            context.EndRequest += new System.EventHandler(context_EndRequest);
        }

        void context_EndRequest(object sender, System.EventArgs e)
        {
            HttpApplication app = sender as HttpApplication;

            for (int i = 0; i < app.Context.Response.Cookies.Count; i++)
            {
                app.Context.Response.Cookies[i].Domain = m_RootDomain;
            }
        }

        #endregion
 }
 

上面的Module重設了所有cookie的domain到root domain, root domain在web.config中設置。也許有人會說這是眉毛胡子一把抓重寫了所有cookie的domain, 那他也可以判斷一下cookie的name, 如果為ASP.NET_SessionId的話才重寫。

如果主站點和二級域名站點是同一站點,那么做到這一步,你的session就已經共享了,因為Session的ID是相同的,而且Session容器也是同一個。

如果主站點和二級域名站點是兩個不同站點,則需要進行更多的操作了。

如果兩個站點是不同的服務器的話,解決方法要簡單點:

1) 使用相同的state server來存儲Session.

2) 在兩個站點的web.config設置相同的machineKey.

<machineKey 

 validationKey="78AE3850338BFADCE59D8DDF58C9E4518E7510149C46142D7AAD7F1AD49D95D4" 

 decryptionKey="5FC88DFC24EA123C"

 validation="SHA1"/>

MachineKey的設置請參考http://msdn.microsoft.com/zh-cn/asp.net/w8h3skw9.aspx

3) 給兩個站點設置相同name

這樣做是為了確保兩個站點的siteID相同,siteID是site name的hash值,注意請不要使用默認站點,因為默認站點的siteID并非site name的hash.

如果兩個站點是在同一的服務器的話,需要對CrossDomainCookie再作一下修改,此方法也可應用于兩個站點在不同服務器的情況:

1) 使用相同的state server來存儲Session.

2) 用反射來設置System.Web.SessionState.OutOfProcSessionStateStore的靜態字段s_uribase的值

 public class CrossDomainCookie : IHttpModule
    {
        private string m_RootDomain = string.Empty;

        #region IHttpModule Members

        public void Dispose()
        {

        }

        public void Init(HttpApplication context)
        {
            m_RootDomain = ConfigurationManager.AppSettings["RootDomain"];

            Type stateServerSessionProvider = typeof(HttpSessionState).Assembly.GetType("System.Web.SessionState.OutOfProcSessionStateStore");
            FieldInfo uriField = stateServerSessionProvider.GetField("s_uribase", BindingFlags.Static | BindingFlags.NonPublic);

            if (uriField == null)
                throw new ArgumentException("UriField was not found");

            uriField.SetValue(null, m_RootDomain);

            context.EndRequest += new System.EventHandler(context_EndRequest);
        }

        void context_EndRequest(object sender, System.EventArgs e)
        {
            HttpApplication app = sender as HttpApplication;

            for (int i = 0; i < app.Context.Response.Cookies.Count; i++)
            {
                app.Context.Response.Cookies[i].Domain = m_RootDomain;
            }
        }

        #endregion
    }

完成這樣的修改之后就可以實現Session的共享了。

同樣如果你是使用SQL server來存儲Session, 也可以使用類似的方法來解決Session共享問題。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/nutian/archive/2008/11/08/3254149.aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电影在线观看免费| 国产精品久久久久久久app| 亚洲第一精品电影| 欧美最猛性xxxxx免费| 国产精品视频在线观看| 久久久久日韩精品久久久男男| 久久国产一区二区三区| 久久国产精品影视| 久久久国产视频| 国产成人精品免高潮费视频| 中文字幕欧美精品在线| 高清欧美性猛交xxxx| 日韩欧美国产一区二区| 色综合久综合久久综合久鬼88| 欧美成人精品激情在线观看| 国产成人极品视频| 91夜夜揉人人捏人人添红杏| 久久这里有精品视频| 成人精品一区二区三区电影免费| 国产成人亚洲综合91精品| 久久精品国产清自在天天线| 日韩欧美在线视频日韩欧美在线视频| 欧美黑人性生活视频| 欧美电影免费观看高清| 欧美一级在线亚洲天堂| 日韩中文字幕国产| 日韩精品视频观看| 日韩精品视频在线| 亚洲国产精品久久久久秋霞不卡| 国产精品高潮呻吟久久av野狼| 亚洲黄在线观看| 欧美裸体xxxx极品少妇软件| 久久久电影免费观看完整版| 国产精品综合不卡av| 日韩动漫免费观看电视剧高清| 日韩av中文字幕在线免费观看| 亚洲最大成人免费视频| 亚洲一区二区三区sesese| 国产精品jvid在线观看蜜臀| 国产精品福利片| 国产精品日韩专区| 97碰碰碰免费色视频| 热久久这里只有| 亚洲图片制服诱惑| 热久久99这里有精品| 日韩国产精品亚洲а∨天堂免| 亚洲综合精品伊人久久| 97成人精品区在线播放| 国产亚洲欧洲高清| 日韩中文字幕在线| 日韩最新免费不卡| 亚洲精品在线观看www| 色悠悠久久久久| 亚洲第一偷拍网| 欧美电影在线观看网站| 91极品女神在线| 亚洲人精品午夜在线观看| 午夜精品福利视频| 亚洲精品福利视频| 精品中文字幕在线观看| 亚洲欧美日韩国产成人| 2020久久国产精品| 亚洲午夜性刺激影院| 日韩精品免费视频| 亚洲免费av电影| 日韩成人在线视频网站| 日本一区二区三区在线播放| 国产精品白嫩美女在线观看| 少妇精69xxtheporn| 亚洲视频精品在线| 精品欧美国产一区二区三区| 国产精品视频精品| 日韩欧美成人网| 青青久久aⅴ北条麻妃| 亚洲人成自拍网站| 欧美日韩精品在线播放| 亚洲高清免费观看高清完整版| 国产精品成人v| 久久香蕉国产线看观看网| 在线日韩第一页| 欧美一级成年大片在线观看| 亚洲人成在线一二| 欧美专区福利在线| 久久成年人免费电影| 久久九九免费视频| 亚洲毛片在线观看| 日本一区二区在线免费播放| 欧美性猛交xxxx乱大交3| 国产精品一区=区| 国产91成人在在线播放| 欧美黑人又粗大| 亚洲成人网久久久| 92裸体在线视频网站| 国产精品久久97| 97精品免费视频| 国产精品一区二区三区成人| 不卡av在线网站| 日本中文字幕久久看| 91久久久久久久久| 97国产精品免费视频| 亚洲黄色www| 日韩激情av在线播放| 色视频www在线播放国产成人| 精品国产乱码久久久久久婷婷| 俺去了亚洲欧美日韩| 色香阁99久久精品久久久| 日韩欧美视频一区二区三区| 日韩免费精品视频| 欧美大尺度激情区在线播放| 亚洲摸下面视频| 理论片在线不卡免费观看| 精品高清一区二区三区| 97久久超碰福利国产精品…| 国产男女猛烈无遮挡91| 91精品中文在线| 亚洲自拍偷拍视频| 亚洲国产精品va在看黑人| 国产成人自拍视频在线观看| 欧洲成人在线观看| 国产69久久精品成人看| 色黄久久久久久| 色www亚洲国产张柏芝| 久久久久久久久久国产精品| 欧美激情第一页xxx| 91国产美女在线观看| 欧美日韩国产中文字幕| 国产一区二区三区在线免费观看| 中文字幕亚洲精品| 国产精品一区二区三区免费视频| 亚洲欧美中文日韩v在线观看| 亚洲国产天堂网精品网站| 亚洲国产精品久久久| 久久久亚洲精品视频| 国产丝袜精品视频| 欧美一级淫片丝袜脚交| 91亚洲一区精品| 久久69精品久久久久久久电影好| 亚洲国产精品va在线看黑人动漫| 2019中文在线观看| 国产精品一区二区久久国产| 在线亚洲午夜片av大片| 久久精品91久久香蕉加勒比| 日韩在线观看免费高清| 久久国产视频网站| 亚洲品质视频自拍网| 亚洲香蕉av在线一区二区三区| 亚洲成人av资源网| 国产在线视频2019最新视频| 97国产成人精品视频| 高清欧美性猛交xxxx黑人猛交| 国产视频丨精品|在线观看| 精品女同一区二区三区在线播放| 中文字幕一精品亚洲无线一区| 欧美成年人视频网站欧美| 国产精品v片在线观看不卡| 国产精品久久久久aaaa九色| 国产精品亚洲аv天堂网| 91精品久久久久久| 国产欧美日韩中文| 青青草精品毛片| 国产成人亚洲综合| 午夜精品99久久免费| 伊人久久久久久久久久久久久| 91精品在线影院|