一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET實現多域名多網站共享Session值的方法

ASP.NET實現多域名多網站共享Session值的方法

2019-09-23 10:42asp.net建站網 ASP.NET教程

實現功能:可設置哪些站點可以共享Session值,這樣就防止別人利用這個去訪問,要想實現這個功能就必須得把Session值 放入數據庫中, 所有我們先在VS命令工具下注冊一個

ASP.NET實現多域名多網站共享Session值 
1、實現功能:可設置哪些站點可以共享Session值,這樣就防止別人利用這個去訪問 
  要想實現這個功能就必須得把Session值 放入數據庫中, 所有我們先在VS命令工具下注冊一個 
命名如下:aspnet_regsql.exe -S [數據庫服務地址] -E -ssadd 具體格式請參考 /? 
添加成功后我們休要對ASP.NET生成的存儲過程進行簡單的修改, 
打開ASP.net為我們創建的數據庫“ASPState” 找到存儲過程“TempGetAppID” 
然后修改存儲過程如下: 

復制代碼代碼如下:


USE [ASPState] 
GO 
/****** Object: StoredProcedure [dbo].[TempGetAppID] Script Date: 11/21/2011 16:15:27 ******/ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER OFF 
GO 
ALTER PROCEDURE [dbo].[TempGetAppID] 
@appName tAppName, 
@appId int OUTPUT 
AS 
SET @appName = LOWER(@appName) 
SET @appId = NULL 
set @appId=640732509 --這個是我自己測試時寫死的 你可以通過系統數據庫tempdb中的ASPStateTempApplications查詢到站點appId 記住只有當網站的Seeion配置是數據庫中 而且保存過一次Session值才能查詢的到 
/* 
--SELECT @appId = AppId 
--FROM [tempdb].dbo.ASPStateTempApplications 
--WHERE AppName = @appName 
以上注釋辦法為原來ASP.net 自動生成的 
*/ 
IF @appId IS NULL BEGIN 
BEGIN TRAN 
SELECT @appId = AppId 
FROM [tempdb].dbo.ASPStateTempApplications WITH (TABLOCKX) 
WHERE AppName = @appName 
IF @appId IS NULL 
BEGIN 
EXEC GetHashCode @appName, @appId OUTPUT 
INSERT [tempdb].dbo.ASPStateTempApplications 
VALUES 
(@appId, @appName) 
IF @@ERROR = 2627 
BEGIN 
DECLARE @dupApp tAppName 
SELECT @dupApp = RTRIM(AppName) 
FROM [tempdb].dbo.ASPStateTempApplications 
WHERE AppId = @appId 
RAISERROR('SQL session state fatal error: hash-code collision between applications ''%s'' and ''%s''. Please rename the 1st application to resolve the problem.', 
18, 1, @appName, @dupApp) 
END 
END 
COMMIT 
END 
RETURN 0 


這個就可以共享了,但我們還得解決一個問題就是替換客戶端的SeeionID ,我們可以添加一個處理程序來利用SessionIDManager類來進行處理, 
實例我就不寫了,我值寫個替換的方法 

復制代碼代碼如下:


SessionIDManager sessionid = new SessionIDManager(); 
bool a; 
bool b; 
sessionid.SaveSessionID(this.Context, "這里是SeeionID", out a, out b); 


最后修改配置文件 
在System.Web節點下添加 <sessionState mode="SQLServer" sqlConnectionString="data source=數據連接;user id=sa; password=123456;" ></sessionState> 
ok 一切搞定 你去試試把

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产欧美一区二区 | 和日本免费不卡在线v | 国产成人啪精品视频站午夜 | 精品精品国产自在香蕉网 | 日本免费在线观看视频 | 特黄特色一级aa毛片免费观看 | 色综久久天天综合绕视看 | 欧美破处女视频 | 欧美性色欧美a在线播放 | 日韩免费观看 | 国产精品自拍一区 | 美女逼逼喷水 | 操乳 | 四虎最新永久免费网址 | 农村妇女野战bbxxx农村妇女 | 久久五月综合婷婷中文云霸高清 | 欧美精品一国产成人性影视 | 91传媒制片厂制作传媒破解版 | 狠狠色狠狠色综合日日小蛇 | 欧美成人aa久久狼窝动画 | 娇女的呻吟亲女禁忌h16 | 动漫美女羞羞 | 免费岛国片 | 精品久久久久久久国产潘金莲 | 乳女教师欲乱动漫无修版动画3d | 精品午夜中文字幕熟女人妻在线 | 天堂网www在线中文天堂 | 精品成人一区二区三区免费视频 | 国产成人亚洲精品一区二区在线看 | 国内体内she精视频免费 | 福利社在线免费观看 | 亚洲看片lutube在线入口 | 拔插拔插.com | 大胆国模一区二区三区伊人 | 成年人视频免费在线播放 | 2048论坛永久入口 原创合集 | 11 13加污女qq看他下面 | 狠狠干日日操 | 亚洲男gay同性同志 亚洲免费在线看 | 欧美黑大吊| 嫩草视频在线观看免费 |