C# redis 分布式session存储
https://github.com/uliian/SessionExtentionStore
Merge branch 'master' of https://github.com/uliian/SessionExtentionSt… …
| SessionExtention | 改名 | 9 months ago | |
| SessionExtentionStore | 改名 | 9 months ago | |
| packages | Session扩展存储 | 9 months ago | |
| .gitattributes | 初始化提交以添加默认 .gitIgnore 和 .gitAttribute 文件。 | 9 months ago | |
| .gitignore | 初始化提交以添加默认 .gitIgnore 和 .gitAttribute 文件。 | 9 months ago | |
| README.md | Update README.md | 9 months ago | |
| SessionExtention.sln | 改名 | 9 months ago | |
| SessionExtention.sln.DotSettings | Session扩展存储 | 9 months ago |
README.md
SessionExtentionStore
一个基于Redis的Session存储扩展方案,解决ASP.NET中Session的局限性和跨应用程序使用的局限性
原生的Session解决方案存在着跨应用程序的困难,扩展性的困难,而SessionExtentionStore方案致力于解决这个问题。 这是一个简单的处理方案,使用了这个解决方案,您能将多个应用间数据交互交由SessionExtentionStore解决, 在使用共享Session提供SSO的解决方案中,尤其有用。
我采用的是类Session的处理方式,和SessionId绑定到了一起,这样就能依赖于Session的机制将用户和扩展绑定到了一起。
使用方法: 配置web.config,增加以下配置节点:
<system.web>
<httpModules>
<add name="SessionExtentionStore" type="SessionExtentionStore.UpdateTTL"/>
</httpModules>
<system.web> <appSettings>
<add key="SessionExtention" value="127.0.0.1"/>
</appSettings>
要是MVC环境,则建立一个Controller父类,派生自Controller类,若是WebForm则建立一个父类派生自System.Web.UI.Page, 父类加入以下属性定义:
private StoreContainer _store;
public StoreContainer Store
{
get
{
if (!string.IsNullOrEmpty(Session.SessionID))
{
Session["__TempCreate__"] = 1;
return new StoreContainer(Session.SessionID);
}
return _store ?? (_store = new StoreContainer(Session.SessionID));
}
}
其他所有页面都派生自这两个父类,然后均可以使用Store属性进行数据存储,与使用Session的方式一样。 因为存储内容当中带有类型信息,若带有非mscorlib带有的的数据类型需要在多应用程序间共享,需要在子类中使用 Store.GetJson(string key)或者GetValue(string key)方法。
我的第一个可以使用的开源项目,我在我所负责的项目中已经开始使用,希望有能看到的朋友给予支持,提出宝贵意见。谢谢!
C# redis 分布式session存储的更多相关文章
- [2014-02-23]Asp.net Mvc分布式Session存储方案
要玩集群的时候,怎么处理会话状态Session? InProc模式的sessionState是不能用了,因为这是在web服务器本机进程里的,会造成各节点数据不一致.除非在分流的时候用ip hash策略 ...
- 自定义Redis作为Session存储服务提供
之前看网上介绍可使用Redis自定义Session托管,使用第三方的Harbour.RedisSessionStateStore GitHub:https://github.com/TheCloudl ...
- Redis 分布式session
这里有三种和方式实现: 1.Harbour.RedisSessionStateStore , ServiceStack.Redis 配置web.config <sessionState mode ...
- redis/分布式文件存储系统/数据库 存储session,解决负载均衡集群中session不一致问题
先来说下session和cookie的异同 session和cookie不仅仅是一个存放在服务器端,一个存放在客户端那么笼统 session虽然存放在服务器端,但是也需要和客户端相互匹配,试想一个浏览 ...
- Spring Boot 应用使用spring session+redis启用分布式session后,如何在配置文件里设置应用的cookiename、session超时时间、redis存储的namespace
现状 项目在使用Spring Cloud搭建微服务框架,其中分布式session采用spring session+redis 模式 需求 希望可以在配置文件(application.yml)里设置应用 ...
- 分布式中Redis实现Session终结篇
上一篇使用Redis实现Session共享方式虽然可行,但是实际操作起来却很麻烦,现有代码已经是这个样子了,总不可能全部换掉吧!好吧,这是个很实际的问题,那么能不能实现无侵入式的分布式Session共 ...
- [Node.js] Node + Redis 实现分布式Session方案
原文地址: http://www.moye.me/?p=565 Session是什么? Session 是面向连接的状态信息,是对 Http 无状态协议的补充. Session 怎么工作? Sessi ...
- 实现Asp.net Mvc分布式Session Redis群集
Redis群集实现Asp.net Mvc分布式Session Session的缺点 众所周知Asp.net Session默认存储在IIS中,IIS的重启会导致Session丢失. 如果你的网站使用了 ...
- 一篇文章让你深透理解cookie和session,附带分布式WEB系统redis共享session方案
cookie和session有什么区别?这是一个很基础的知识点,大家可能都知道一个大概:cookie是存在客户端的,session是存储在服务端,cookie和session用来验证识别用户的登录状态 ...
随机推荐
- [转]SqlPlus安装配置
本文转载自http://blog.csdn.net/wuxiaoyan_home/article/details/4826440 一.下载oracle 10g sqlplus软件 http://www ...
- java学习随笔--- 捣蛋vector
最近比较有时间啦,有时间搞下java,个人觉得学这门语言语法太多啦,不一一去学习啦,心血来潮,挂了个struct2的源代码,一入深似海啊,看得我天花缭乱,从最简单的开始吧 public static ...
- Wireshark基本介绍及应用tcp
wireshark介绍 wireshark的官方下载网站: http://www.wireshark.org/ wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示 ...
- [转] Web 前端优化最佳实践之 Mobile(iPhone) 篇
原文链接:http://dbanotes.net/web/best_practices_for_speeding_up_your_web_site_server_mobile.html Web 前端优 ...
- c#中@符号作用
用 @ 符号加在字符串前面表示其中的转义字符“不”被处理. 如果我们写一个文件的路径,例如"D:/文本文件"路径下的text.txt文件,不加@符号的话写法如下: string f ...
- (转)PHP开发框架浅析
开发框架的定义我没有找到很准确的描述,下面几句话基本概括了开发框架的的功能和用途 框架是一种应用程序的半成品: 框架就像是人的骨骼一样: 框架是一组可复用的组件: 框架是一个可复用的设计构件…… 简而 ...
- c# 运行时替换某文件源代码(将XML 转换成 某个枚举并写入源文件)
var sr = new StreamReader(Server.MapPath("~/WEB-INF/rule.config")); XmlDocument doc = new ...
- C#.Net 导出Excel 之单元格 相关设置
range.NumberFormatLocal = "@"; //设置单元格格式为文本range = (Range)worksheet.get_Range("A1 ...
- UVALive 5888 Stack Machine Executor (栈+模拟)
Stack Machine Executor 题目链接: http://acm.hust.edu.cn/vjudge/problem/26636 Description http://7xjob4.c ...
- 如何在Centos上安装python3.4
Centos上面默认的Python版本是2.6,本文介绍如何安装3.4版本. 0.下载前准备 需要安装以下库,不然会有问题. yum -y install zlib-devel bzip2-devel ...