ASP.NET指定單個或多個Session值與其他網站共用,其他互不影響

來源:互聯網
上載者:User

這個想法是最近項目裡面出來的問題,所有想到的,一個單點登入,也就是共用登入資訊了,以前在網上找的都是把Session全部和其它網站共用了,這樣就會有很多混亂的苦惱,怎麼老實現只共用某個Session了 如:我值共用Session["LoginInfo"]的值,也好是在別的網站我只能擷取到我這個網站的Session["LoginInfo"]的值,擷取其它值就不行了?首先看看都Session全部共用的實現方法,全部共用Session得實現以下效果:

1、保證所有網站的SessionId值完全一樣,不管是先進入的哪個網站
2、修改網站的區別字串
實現以上功能有很多種方法,最合理的當然是自訂SessionId的管理類也就是繼承System.Web.SessionState.ISessionIDManager介面的一個類,這樣我們自己管理Sessionid就能夠很輕鬆的使所有網站SessionId值完全一致,

實現指定Session共用的話就麻煩一點了,我們得先看看Session的儲存機制,Session儲存方式一個有三種,哪三種我想大家都非常清楚了,反編譯查看源碼得知這三種都儲存機制都繼承了一個抽象類別System.Web.SessionState.SessionStateStoreProviderBase。
但因為微軟把這三種儲存機制都定義成了程式集的,我們無法使用,這時候就想到了相容,就如xxx模式中的相容轉換一樣,我在定義一個MySessionStateStoreProvider繼承System.Web.SessionState.SessionStateStoreProviderBase,然後在實現System.Web.SessionState.SessionStateStoreProviderBase都所有派產生員都能轉換成MySessionStateStoreProvider的方法,實現這個最簡單的方法就是在MySessionStateStoreProvider定義一個私人的變數System.Web.SessionState.SessionStateStoreProviderBase ,這樣去實現,到了這一步就可以看看System.Web.SessionState.SessionStateStoreProviderBase裡面定義的抽象方法了,

o(︶︿︶)o  星期六上班的你傷不起啊,還是晚上回去接著寫完吧。。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.