濮阳杆衣贸易有限公司

主頁 > 知識庫 > ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值的方法

ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值的方法

熱門標簽:廈門商鋪地圖標注 海外地圖標注門市標 浙江外呼系統(tǒng)怎么安裝 云南外呼電銷機器人系統(tǒng) 上海楊浦怎么申請申請400電話 陜西人工外呼系統(tǒng)哪家好 山西防封卡電銷卡套餐 銅川小型外呼系統(tǒng)運營商 地圖標注多個行程
ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值
1、實現(xiàn)功能:可設(shè)置哪些站點可以共享Session值,這樣就防止別人利用這個去訪問
  要想實現(xiàn)這個功能就必須得把Session值 放入數(shù)據(jù)庫中, 所有我們先在VS命令工具下注冊一個
命名如下:aspnet_regsql.exe -S [數(shù)據(jù)庫服務地址] -E -ssadd 具體格式請參考 /?
添加成功后我們休要對ASP.NET生成的存儲過程進行簡單的修改,
打開ASP.net為我們創(chuàng)建的數(shù)據(jù)庫“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 --這個是我自己測試時寫死的 你可以通過系統(tǒng)數(shù)據(jù)庫tempdb中的ASPStateTempApplications查詢到站點appId 記住只有當網(wǎng)站的Seeion配置是數(shù)據(jù)庫中 而且保存過一次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節(jié)點下添加 sessionState mode="SQLServer" sqlConnectionString="data source=數(shù)據(jù)連接;user id=sa; password=123456;" >/sessionState>
ok 一切搞定 你去試試把
您可能感興趣的文章:
  • Asp.net中處理一個站點不同Web應用共享Session的問題
  • ASP.NET中在不同的子域中共享Session的具體方法

標簽:西雙版納 萊蕪 自貢 朔州 常州 許昌 孝感 信陽

巨人網(wǎng)絡(luò)通訊聲明:本文標題《ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值的方法》,本文關(guān)鍵詞  ASP.NET,實現(xiàn),多,域名,網(wǎng)站,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP.NET實現(xiàn)多域名多網(wǎng)站共享Session值的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    许昌县| 铜鼓县| 托里县| 烟台市| 珠海市| 岑巩县| 福鼎市| 仙游县| 五峰| 兴业县| 梅河口市| 秭归县| 于都县| 安国市| 凌云县| 柞水县| 繁昌县| 苍梧县| 马关县| 泾阳县| 宁陕县| 府谷县| 黔南| 闽侯县| 兴化市| 赞皇县| 合肥市| 全椒县| 同江市| 阜平县| 泾川县| 湖南省| 时尚| 浪卡子县| 三亚市| 通州区| 新巴尔虎左旗| 临城县| 岳西县| 磐安县| 武义县|