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

 更新时间:2011年11月21日 18:41:12   作者:   我要评论
实现功能:可设置哪些站点可以共享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 一切搞定 你去试试把

相关文章

  • asp.net c#采集需要登录页面的实现原理及代码

    asp.net c#采集需要登录页面的实现原理及代码

    当我们采集页面的时候,如果被采集的网站需要登录才能采集,原理搞清楚了,就好办了,我们所要做的仅仅是在采集的时候(或者说HttpWebRequest提交数据的时候),将Cookie信息放入Http请求头里面就可以了,感兴趣的朋友可以了解下,或许对你有所帮助
    2013-02-02
  • 灵活掌握Asp.net MVC中GridView的使用方法

    灵活掌握Asp.net MVC中GridView的使用方法

    这篇文章主要帮助大家灵活掌握Asp.net MVC中GridView的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • ASP.NET MVC4 Razor模板简易分页效果

    ASP.NET MVC4 Razor模板简易分页效果

    这篇文章主要为大家详细介绍了ASP.NET MVC4 Razor模板简易分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • 在.Net中使用MongoDB的方法教程

    在.Net中使用MongoDB的方法教程

    最近在研究mongodb,在网上搜索发现针对.net 中使用mongodb的文章要么是早期的驱动版本,要么资料很少,所以写个随笔记录一下,本文详细的给大家介绍了在.Net中使用MongoDB的方法教程,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • ASP.NET深度复制和浅度复制分析

    ASP.NET深度复制和浅度复制分析

    这篇文章主要介绍了ASP.NET深度复制和浅度复制,实例分析了ASP.NET中深度复制和浅度复制的区别与具体应用,对于学习ASP.NET有着很好的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • mvc file控件无刷新异步上传操作源码

    mvc file控件无刷新异步上传操作源码

    这篇文章主要为大家分享了mvc file控件无刷新异步上传操作源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • ASP.NET通过byte正确安全的判断上传文件格式

    ASP.NET通过byte正确安全的判断上传文件格式

    本文介绍一种更安全的方式上传图片,他能有效的防止一些通过修改文件后缀或MIME来伪造的图片的上传,从而保证服务器的安全,希望对大家有所帮助。
    2016-03-03
  • js与ASP.NET 中文乱码问题

    js与ASP.NET 中文乱码问题

    本文摘自一位哥们的QQ空间里,自认为方案比较可行,也确实解决了开发中的这一类问题,非原创,写在此是为以后自己能方便的找到,也希望对其他的朋友有帮助。
    2009-10-10
  • .net 获取浏览器Cookie(包括HttpOnly)实例分享

    .net 获取浏览器Cookie(包括HttpOnly)实例分享

    这篇文章介绍了.net 获取浏览器Cookie(包括HttpOnly)实例,有需要的朋友可以参考一下
    2013-10-10
  • ASP.NET将Session保存到金沙国际官网中的方法

    ASP.NET将Session保存到金沙国际官网中的方法

    因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的
    2013-08-08

最新评论