數據庫實現多站點共享Session


數據庫實現多站點共享Session

多站點共享Session有很多方法,多站點共享Session常見的做法有:

  • 使用.net自動的狀態服務(Asp.net State Service);
  • 使用.net的Session數據庫;
  • 使用Redis等緩存。
  • 使用Cookie方式實現多個站點間的共享,但是這種方式只限於幾個站點都在同一域名的情況下;

這里主要介紹數據庫的形式存儲Session,來實現多站點共享Session。

1.新建web站點,添加setSession.aspx 等頁面,如下圖:

 

 

2.修改web.config 配置,增加 sessionState配置是讓 Session 保存在數據庫中

具體配置如下:

<sessionState mode="SQLServer" timeout="40" allowCustomSqlDatabase="false" sqlConnectionString="data source=XXX;uid=sa;password=sasa"/>

網站部分這樣就好了,發布成兩個不同的網站,http://localhost:8097和http://localhost:8098。

 

3.配置session的sqlserver 模式

網站創建好之后,下面就是要配置據庫,具體配置方法,參考前一篇博客:Session的SqlServer模式的配置

 

4.共享SessionID

ASPStateTempSessions 表中的SessionID ,包括兩個部分:網站生成的24位SessionID及8位AppId組成,對於不同的站點,其AppId和AppName也不同,在能夠在不同站點下Session共享,就得保證這個32位的SessionID 一致,所以可以通過修改存儲過程TempGetAppID,使其得到的SessionID與AppName無關,修改TempGetAppID如下:

 

修改完之后,重啟一下各站點。再在瀏覽一下網站,兩個網站能獲取到同一個session了:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM