多站点共享Session

多站点共享Session

多站点共享Session有很多方法,多站点共享Session常见的做法有:

  • 使用.net自动的状态服务(Asp.net State Service);
  • 使用.net的Session数据库;
  • 使用Redis等缓存。
  • 使用Cookie方式实现多个站点间的共享,但是这种方式只限于几个站点都在同一域名的情况下;

这里主要介绍数据库的形式存储Session,来实现多站点共享Session。

1.新建web站点,添加setSession.aspx 等页面,如下图:

2.修改web.config 配置,增加 sessionState配置是让 Session 保存在数据库中

具体配置如下:

<sessionState mode="SQLServer" timeout="40" allowCustomSqlDatabase="false" sqlConnectionString="data source=XXX;uid=sa;password=sasa"/>

网站部分这样就好了,发布成两个不同的网站,http://localhost:8097和http://localhost:8098。

3.配置session的sqlserver 模式

网站创建好之后,下面就是要配置据库,具体配置方法,参考前一篇博客:Session的SqlServer模式的配置

4.共享SessionID

ASPStateTempSessions 表中的SessionID ,包括两个部分:网站生成的24位SessionID及8位AppId组成,对于不同的站点,其AppId和AppName也不同,在能够在不同站点下Session共享,就得保证这个32位的SessionID 一致,所以可以通过修改存储过程TempGetAppID,使其得到的SessionID与AppName无关,修改TempGetAppID如下:

修改完之后,重启一下各站点。再在浏览一下网站,两个网站能获取到同一个session了:

时间: 2024-11-05 22:52:52

多站点共享Session的相关文章

nginx 负载均衡、用数据库存储Session,来实现多站点共享Session[转]

多站点共享Session常见的作法有: 1.使用.net自动的状态服务(Asp.net State Service); 2.使用.net的Session数据库: 3.使用Memcached. 4.使用Cookie方式实现多个站点间的共享(这种方式只限于几个站点都在同一域名的情况下): 这里我们就 演练一下 以数据库的形来存储Session,来实现多站点共享Session. 首先我们 建好一下站点,如下图: Default.aspx 其中 有二个Button  ,SetSession 主要是用于给

ASP.NET二级域名站点共享Session状态

前面一篇文章提到了如何在使用了ASP.NET form authentication的二级站点之间共享登陆状态, http://www.cnblogs.com/jzywh/archive/2007/09/23/902905.html, 今天, 我要写的是如何在二级域名站点之间,主站点和二级域名站点之间共享Session. 首先, Session要共享,站点之间SessionID必须要一致,那怎么保证SessionID一致呢? ASP.NET中的SessionID是存储在客户端的cookie之中键

linux php 中session 多站点共享session问题

linux php 中session默认file 假如修改为redis php.ini session.save_handler = "files"; session.save_path="tcp://127.0.0.1:6379" /etc/php-fpm.d/*.conf 这个地方也要改 ; Set session path to a directory owned by process user ;php_value[session.save_handler]

ASP.NET MVC 使用Redis共享Session

储存模式 1.InProc模式 这是ASP.NET默认的Session管理模式,在应用进程内维护Session. 2.StateServer模式 这是在服务器装了.NET环境后自带的一个StateServer服务,在应用进程外管理Session,可以进行多应用间的Session共享. 3.SQLServer模式 这是利用SQLServer进行Session的托管.其优点在于可以利用SQLServer的优势处理海量Session,在应用进程外.可持久化.安全性高等优点. 4.Custom模式 这是

ASP.NET MVC单点登录(多站点共享用户信息)

一.多站点共享用户信息解决方案: 采用分布式缓存Memcache模拟Session进行用户信息信息共享 1.视图部分 @{ Layout = null; } <!DOCTYPE html> <html> <head> <title>XX商城后台管理系统登录</title> <script type="text/javascript"> if (window.parent.window != window) { wi

session和cookie区别,多台WEB服务器如何共享session,禁用COOKIE后SESSION是否可用,为什么?

答:session的运行机制: 用户A访问站点Y,如果站点Y指定了session_start();(以下假设session_start()总是存在)那么会产生一个session_id,这个session_id一般会以COOKIE的形式保存到用户A(我们可以通过在php.ini里设置session.use_only_cookies为1,强制SESSIONID必须以COOKIE专递.).这时候SESSIONID表现为$_COOKIE[‘PHPSESSID’];(PHPSESSID可用session_

利用spring session解决共享Session问题

1.共享Session问题 HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的.而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到两个不同的web站点中去.那么问题就来了,如何保证不同的web站点能够共享同一份session数据呢? 最简单的想法就是把session数据保存到内存以外的一个统一的地方,例如Memcached/Redis等数据库中.那么问题又来了,如何

如何实现Asp与Asp.Net共享Session

<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe> 在.ne

使用ASP.NET State Server实现多应用程序间共享Session State

原以为ASP.NET State Server原生支持多程序间共享SESSION,以为在同一服务器上 & 同一根域名下部署的多个应用程序间设置了相同了<sessionState/>和<machineKey/>事情就成了! 事实证明是自己TOO YOUNG TOO SIMPLE.根本不WORK! BING了一大轮,再找了一下度娘,看到以下较有参考价值的文章: http://forums.asp.net/t/1759392.aspx?Share+sessions+between