前面几篇分享了nosql只mongodb,今天简单分享另一个nosql神兵redis。

  主要模仿sso单点登录,将登录人信息写入redis。话不多说,直接上马,驾。

     /// <summary>
///
/// </summary>
/// <param name="name"></param>
/// <param name="pass"></param>
/// <returns></returns>
public string Login(string name, string pass)
{
//******
//name,pass登陆成功(^_^)
//******
//生成tokan
var token = "tianshangbaiyujing";//Guid.NewGuid().ToString();
//*****获取user信息
var user = new User();
user.Name = "白玉京";
user.Sex = ;
user.Age = ;
user.Address = "杭州";
//*****
//*****将登录人信息信息redis缓存
HashEntry[] entrys = new HashEntry[];//数组对象长度一定要和下面SetValue赋值一一对应
HashEntry entry = new HashEntry("Name", user.Name);
entrys.SetValue(entry, );
entry = new HashEntry("Sex", user.Sex);
entrys.SetValue(entry, );
entry = new HashEntry("Age", user.Age);
entrys.SetValue(entry, );
entry = new HashEntry("Address", user.Address);
entrys.SetValue(entry, );
TimeSpan ts = new TimeSpan();//默认1天
RedisHelper.AddHashKey(token, entrys, ts);
//*****
//*****将user信息存入userSession对象返回给前端
var session = new UserSession() { Token = token, User = user };
//*****
return JsonConvert.SerializeObject(session);
}
/// <summary>
///
/// </summary>
/// <param name="token"></param>
/// <returns></returns>
public string TestUserToken(string token)
{
var arr = RedisHelper.GetHashALL(token);
User user = new User();
user.Name = arr[].Value;
user.Sex = (int)arr[].Value;
user.Age = (int)arr[].Value;
user.Address = arr[].Value;
return JsonConvert.SerializeObject(user);
}
/// <summary>
/// UserSession
/// </summary>
public class UserSession
{
public string Token { get; set; }
public User User { get; set; }
}
/// <summary>
/// User
/// </summary>
public class User
{
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 性别0:男,1:女
/// </summary>
public int Sex { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 地址
/// </summary>
public string Address { get; set; }
}

  redisHelper类。

      static readonly ConnectionMultiplexer Redis = ConnectionMultiplexer.Connect("127.0.0.1:6379");
static readonly IDatabase Db = Redis.GetDatabase();  /// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="hashField"></param>
/// <param name="exp"></param>
public static void AddHashKey(string key, HashEntry[] hashField, TimeSpan? exp = null)
{
Db.HashSet(key, hashField);
Db.KeyExpire(key, exp);
}
  /// <summary>
/// 获取hash表
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static HashEntry[] GetHashALL(string key)
{
return Db.HashGetAll(key);
}

  两个方法运行结果

  

  写了半天,贴两分钟完事了,再贴几张redisServer启动吧,都是cmd命令,跟mongo很像,就不细说了。

  启动客户端看下刚才存的数据。

  这样登录完成后,每次请求接口带上token就可以获取登录信息了。

简单使用redis实现sso单点登录的更多相关文章

  1. 170810、spring+springmvc+Interceptor+jwt+redis实现sso单点登录

    在分布式环境中,如何支持PC.APP(ios.android)等多端的会话共享,这也是所有公司都需要的解决方案,用传统的session方式来解决,我想已经out了,我们是否可以找一个通用的方案,比如用 ...

  2. redis实现SSO单点登录,集群,分布式锁

    https://blog.csdn.net/aussme/article/details/80660443

  3. .NET基于Redis缓存实现单点登录SSO的解决方案[转]

    一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单点登录,现在就NET基于Redis缓存实现单点登录做一个简单的分享. 单点登录(Single Sign On),简称 ...

  4. .NET基于Redis缓存实现单点登录SSO的解决方案

    一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单点登录,现在就NET基于Redis缓存实现单点登录做一个简单的分享. 单点登录(Single Sign On),简称 ...

  5. Redis缓存实现单点登录SSO

    .NET基于Redis缓存实现单点登录SSO的解决方案 .NET基于Redis缓存实现单点登录SSO的解决方案   一.基本概念 最近公司的多个业务系统要统一整合使用同一个登录,这就是我们耳熟能详的单 ...

  6. .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...

  7. 使用 JSONP 实现简单的 SSO 单点登录

    SSO 即 Single Sign On(单点登录).  一.二级域名之间的单点登录 不需要用到JSONP 或者 p3p 协议,直接使用 COOKIE 就行了,因为顶级域名相同就能实现 COOKIE ...

  8. SSO 单点登录简单流程(cas)

    配置服务端(链接数据库) 第一步: 下载cas-server端,解压开, 将中的解压开,将该包中的内容放入cas文件夹(新建文件夹)中 然后将这个文件夹放入到服务端的服务器(tomcat)中 将解压开 ...

  9. SpringCloud系列——SSO 单点登录

    前言 作为分布式项目,单点登录是必不可少的,文本基于之前的的博客(猛戳:SpringCloud系列——Zuul 动态路由,SpringBoot系列——Redis)记录Zuul配合Redis实现一个简单 ...

随机推荐

  1. BitnamiRedmine配置邮件系统备忘

    前几天安装的Redmine邮件系统存在问题,需要换一个,方法记录如下: 修改配置文件: cd ~/redmine/apps/redmine/htdocs/config vi configuration ...

  2. g4e基础篇#5 创建分支和保存代码

    章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 了解Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git ...

  3. Sql Server XML

    实验数据: Create table xmldata (name NVARCHAR(20), age int, sex NVARCHAR(5) ) INSERT INTO xmldata VALUES ...

  4. WebClient图片下载

    使用WebClient下载文件非常方便,针对有部分网站通过请求头的Referer,做了图片防盗链,可以在webClient加上Referer 来模拟请求 string basePath = Path. ...

  5. 转:EditPuls 5.0 注册码

    EditPlus5.0注册码 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAW EditPlus3.x注册码 EditPlus注册码生成器链接 http://ww ...

  6. Zabbix Agent安装与卸载

    cmd /c "C:\zabbix\bin\win64\zabbix_agentd.exe -c c:\zabbix\conf\zabbix_agentd.win.conf -i" ...

  7. 查看iPhone电池寿命

    iBackupBot 软件:iBackupBot for iTunes (收费软件) 官网:http://www.icopybot.com/download.htm iBackupBot for iT ...

  8. 使用netstat命名排查网络问题的参考指引

    原文链接:http://www.lookdaima.com/WebForms/WebPages/Blanks/Pm/Docs/DocItemDetail.aspx?id=69b487d0-8bf4-4 ...

  9. SSH 和 Git

    了解SSH SSH 以非对称加密实现身份验证.较常用的非对称加密有 RSA. 两种加密过程: 1.通过用户名密码访问服务器,即使传输的数据是加密的也可能会被劫持到不信任的服务器,泄露用户名和密码. 2 ...

  10. LeetCode算法题-Count Primes(Java实现)

    这是悦乐书的第190次更新,第193篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第49题(顺位题号是204).计算小于非负数n的素数的数量.例如: 输入:10 输出:4 ...