gpt4 book ai didi

ASP.NET实现多域名多网站共享Session值的方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ASP.NET实现多域名多网站共享Session值的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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 一切搞定 你去试试把 。

最后此篇关于ASP.NET实现多域名多网站共享Session值的方法的文章就讲到这里了,如果你想了解更多关于ASP.NET实现多域名多网站共享Session值的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com