[转]asp.net webform 与mvc 共享session

公司内部系统最早是用.net webform模式开发的,现新项目用.net mvc 开发,现存在的问题就是如何保持原有.net webform的登录状态不变,而在mvc中能够验证用户的登录状态,也就是将.net webform 中session中保存的登录状态共享给mvc。

在cnblogs中搜索相关资料,基本解决方法都是将session状态保存在数据库中,然后原有程序和新程序都获取数据库中的session状态 ,从而实现用户登录状态信息共享。

具体实现步骤如下:

1、创建session 保存的数据库

aspnet_regsql -S 数据库实例名 -ssadd -sstype p -U 连接用户名

详细信息可参考:http://kb.cnblogs.com/page/71816/

如下图数据库会创建相应的Session状态存放数据库和表、存储过程等

2、在AspState数据库中找到TempGetAppID存储过程将应用程序名称设置唯一

     2.1、从下图我们可以看到当webfrom 和mvc 第一次访问数据库时提供的@aapName各不相同,正是由于这样,应用程序只能访问各自的session状态。因此只需要将

@appName设置唯一就可以取得唯一的appId了。

1) MVC 在数据库中获取appId

2)webform在数据库中获取appId

3)在AspState数据库中找到TempGetAppID存储过程,设置唯一的appName即可。

3、设置webform 和mvc 的webconfig, 在<system.web>节点中配置session存放的数据库信息

<sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="Data Source=.;Initial Catalog=ASPState;uid=sa;pwd=abc123"></sessionState>

4、设置完成,测试效果

时间: 2024-10-09 06:28:31

[转]asp.net webform 与mvc 共享session的相关文章

ASP.NET中HttpApplication中ProcessRequest方法中执行的事件顺序;ASP.NET WebForm和MVC整体请求流程图

ASP.NET中HttpApplication中ProcessRequest方法中执行的事件顺序 1.BeginRequest  开始处理请求 2.AuthenticateRequest 授权验证请求,获取用户授权信息 3.PostAuthenticateRequest 获取成功 4.AunthorizeRequest 授权,一般来检查用户是否获得权限 5.PostAuthorizeRequest 获得授权 6.ResolveRequestCache 获取页面缓存结果(如果没有则执行) 7.Po

解析ASP.NET WebForm和Mvc开发的区别

解析ASP.NET WebForm和Mvc开发的区别 2013-12-29 01:59 30052人阅读 评论(9) 收藏 举报  分类: ASP.NET(14)  版权声明:本文为博主原创文章,未经博主允许不得转载. 因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚的情况下,问周围的人,别人也只是给自己讲一个大概.而且前两天因为问了一个比较细的

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之中键

ASP.NET下跨应用共享Session和使用Redis进行Session托管简介

在之前的博客中,我说到了Session的共享问题,其中说到了Web Farm和Web Garden两种情况下Session的处理.在ASP.NET提供的Session处理方法中,有以下四种模式: 1.  InProc模式 这是ASP.NET默认的Session管理模式,在应用进程内维护Session. 2.  StateServer模式 这是在服务器装了.NET环境后自带的一个StateServer服务,在应用进程外管理Session,可以进行多应用间的Session共享,在我看来这一模式最为适

ASP.NET下跨应用共享Session和使用Redis进行Session托管

来源引用网络文章 在ASP.NET提供的Session处理方法中,有以下四种模式: 1.  InProc模式 这是ASP.NET默认的Session管理模式,在应用进程内维护Session. 2.  StateServer模式 这是在服务器装了.NET环境后自带的一个StateServer服务,在应用进程外管理Session,可以进行多应用间的Session共享,在我看来这一模式最为适用于Web Garden模式.这在之前的博客里讲过. 3.  SQLServer模式 这是利用SQLServer

[转]解析ASP.NET WebForm和Mvc开发的区别

因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚的情况下,问周围的人,别人也只是给自己讲一个大概.而且前两天因为问了一个比较细的问题,还被别人的一句话打击."我只能告诉你方法,你还指望我手把手的交给你呀,不会你得自己学呀...".没办法只能自己找时间在下面找一些资料学习. 在初步了解MVC后,发现很多人对于MVC和三层架构开发概念上会有

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模式 这是

Ext.Net学习笔记01:在ASP.NET WebForm中使用Ext.Net

Ext.Net是一个对ExtJS进行封装了的.net控件库,可以在ASP.NET WebForm和MVC中使用.从今天开始记录我的学习笔记,这是第一篇,今天学习了如何在WebForm中使用Ext.Net控件库. 下载Ext.Net 首先要去Ext.Net网站上下载Ext.Net,我先学习的是WebForm版: 当前版本是3.1.0,压缩包里面包含了不同版本,分别用在相应.net版本的程序中. 在项目中引用 要使用Ext.Net,首先创建一个WebForm程序,我们这里使用4.5版. 在引用管理器

使用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