跨域名(跨服务器)共享SESSION ASP.NET 解决方案
来源:互联网 发布:软件开发企业 深圳 编辑:程序博客网 时间:2024/04/29 23:51
首先,我说的跨域是指:
a.myDomain.com
b.myDomain.com
这样的域。
如果你想
http://www.abc.com/
http://www.bca.com/
这样共享SESSION这里暂不讨论(可以编程实现).
第一步:使你的ASP.NET程序使用SQL保存SESSION状态。
实施方案:http://www.cnblogs.com/zhangziqiu/archive/2009/03/26/sessionserver.html 《Session服务器配置指南与使用经验》
第二步:在你的ASP.NET里加入cookie代码
HttpCookie ck=Request.Cookie["ASP.NET_SessionId"];ck.Domain="myDomain.com";Request.Cookies.Set(ck);
COOKIE是有域的限制的,如果不加域的话,那就必须在当前全域名下使用COOKIE。总之这个在这篇文章中不重要。想深入了解的朋友,自行GOOGLE吧。
这里简单说明一下, session的传递是通过COOKIE里的ASP.NET_SessionId提供的信息,服务器再根据这个SESSIONID读取数据。
第三步:修改ASPState库中的TempGetAppID存数过程
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo ALTER PROCEDURE [dbo].[TempGetAppID] @appName tAppName, @appId int OUTPUT AS SET @appName = 'myApplication' -- LOWER(@appName)这里修改一下你项目的名字,这只是最笨的方法,仅能用一个项目了。但我相信聪明的你一定有其它解决方法的。 SET @appId = NULL SELECT @appId = AppId FROM [ASPState].dbo.ASPStateTempApplications WHERE AppName = @appName IF @appId IS NULL BEGIN BEGIN TRAN SELECT @appId = AppId FROM [ASPState].dbo.ASPStateTempApplications WITH (TABLOCKX) WHERE AppName = @appName IF @appId IS NULL BEGIN EXEC GetHashCode @appName, @appId OUTPUT INSERT [ASPState].dbo.ASPStateTempApplications VALUES (@appId, @appName) IF @@ERROR = 2627 BEGIN DECLARE @dupApp tAppName SELECT @dupApp = RTRIM(AppName) FROM [ASPState].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.', , 1, @appName, @dupApp) END END COMMIT END RETURN 0
本砖家写的这份文档基于属于“傻瓜包”,但我相信可以解决你的问题的。至于一些原理性的东西,再写个四五页也是写不完的。
各位先用吧,用的多了就知道其中的奥秘了。
转自:http://www.cnblogs.com/flysnow-z/archive/2010/07/22/1783123.html
ASP.NET中在不同的子域中共享Session
http://www.cnblogs.com/assion/archive/2010/07/29/1787960.html?login=1
Session在多个站点之间共享解决方案
http://www.cnblogs.com/DebugLZQ/archive/2011/11/10/2244952.html
ASP.NET中如何正确使用Session
http://dotnet.cnblogs.com/page/71816/
- 跨域名(跨服务器)共享SESSION ASP.NET 解决方案
- asp.net 跨网站/应用程序池/虚拟目录/域名 的Session共享解决方案
- 跨站点共享Session解决方案、单点登录解决方案(ASP.NET 2.0版本)
- Session 共享服务器 Asp.net SqlServer共享Session
- asp.net Session 跨域共享
- Asp.net 多服务器 Session共享
- ASP.NET实现多域名多网站共享Session值
- ASP.NET实现多域名多网站共享Session值
- asp.net网站不同子域名共享session信息
- [SESSION] 跨服务器共享session
- 跨服务器session共享
- 跨服务器session共享
- asp.net Session 共享
- Asp.net session共享
- [ASP.NET]Session在多个站点之间共享解决方案
- ThinkPHP中的跨域名共享session
- 多服务器session共享解决方案
- 同一服务器不同域名session共享
- 赋值构造函数和拷贝构造函数
- ADO.NET连接字符串
- 七夕,染红了我的相思
- C++ 多线程编程总结
- Android游戏框架libgdx笔记(二):图像处理
- 跨域名(跨服务器)共享SESSION ASP.NET 解决方案
- 位域测试
- 【防火墙】防火墙iptables 设置
- Introduction to Build Profiles
- 餐桌上的“爱心菜”
- jquery遍历json数组方法
- ASP.NET中如何正确使用Session
- WinMain函数
- android 检测耳机是否插入