之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的session会互相干扰,导致测试失败,最后通过部署到外网才得以解决。

那么,我就想,能不能找个东西来代替session呢,于是我就想到了Redis/Memory缓存的方式,大家都知道,关于Redis,一个部署了Redis的服务器,默认在Redis中有16个数据库,索引是0~15,那么,能不能用三个站点连接不同的数据库,保证读写分离,互不干扰呢

,开始尝试一下,首先,Redis需要下载并部署到本机,注册到服务上,这个如果不会的,可以看一下Redis安装

对于redis/memory还不了解的朋友,也可以看看我另一篇博客:.NET Core2.0+MVC的Redis/Memory

然后,我们就可以开始写代码了

先看看整个解决方案结构

可以看到,我们的项目有三个站点注册,SSO_Server是用来统一登录注销的,System1,System2自然就是我们的两个网页应用

那么,这边封装了一个redis,memory的类库,想了解的可以在文章后面给的链接下载整个资源

其实,相较于session实现,只是多了这个类库,并把写入,读取session的操作换成写入读取redis/memory缓存的数据

所以这里就不在多说,我们来看看三个站点的部署

既然要在本机运行,那么首先修改host,这个文件的位置是在C:\Windows\System32\drivers\etc

直接用记事本打开,在末尾添加几行:

127.0.0.1 sysone.dddl.com
127.0.0.1 systwo.dddl.com
127.0.0.1 sso.dddl.com

然后看看我们的IIS配置:

这边需要右键添加绑定,绑定我们host中添加的域名

这里用sso认证中心来演示,需要注意的是,.net core2.0,需要在部署网站后,在应用程序池中将.NET CLR版本改为无托管代码:

然后,我们就可以运行了,首先,打开我们的sysone.dddl.com

可以看到,我们被跳转到了sso认证中心,并带上了sysone的链接,然后我们登录:

这边可以看到,我们登录成功并跳转回了sysone站点,返回了token以及用户信息。

然后,我们可以打开systwo站点:

可以看到,我们没有登录,但经由sso认证中心的判断,我们已经登录过,无需登录,我们来测试注销:

可以看到,我们已经注销成功,然后我们再次打开sysone站点:

那么,sso单点登录,注销,就完成了,这里可以下载我们的资源:

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

如果您有什么好的建议,请联系我,在评论中留言,那么,感谢您的阅读,再见

.NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录的更多相关文章

  1. .NET Core2.0+MVC 用session,cookie实现的sso单点登录

    博主刚接触.NET Core2.0,想做一个单点登录的demo,所以参考了一些资料,这里给上链接: 1.http://www.cnblogs.com/baibaomen/p/sso-sequence- ...

  2. NET Core 2.0使用Cookie认证实现SSO单点登录

    NET Core 2.0使用Cookie认证实现SSO单点登录 之前写了一个使用ASP.NET MVC实现SSO登录的Demo,https://github.com/bidianqing/SSO.Sa ...

  3. ASP.NET Core 2.0使用Cookie认证实现SSO单点登录

    之前写了一个使用ASP.NET MVC实现SSO登录的Demo,https://github.com/bidianqing/SSO.Sample,这个Demo是基于.NET Framework,.NE ...

  4. Asp.Net Core基于Cookie实现同域单点登录(SSO)

    在同一个域名下有很多子系统 如:a.giant.com  b.giant.com   c.giant.com等 但是这些系统都是giant.com这个子域. 这样的情况就可以在不引用其它框架的情况下, ...

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

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

  6. 简单使用redis实现sso单点登录

    前面几篇分享了nosql只mongodb,今天简单分享另一个nosql神兵redis. 主要模仿sso单点登录,将登录人信息写入redis.话不多说,直接上马,驾. /// <summary&g ...

  7. 前端分享之cookie的使用及单点登录

    cookie是什么 cookie的英文意思是饼干.在计算机术语中指服务端存放在客户端的一段数据.这段数据在客户端每次进行http请求时会自动加在http请求报文中的header上:服务端在响应时,可以 ...

  8. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  9. (十一) 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录流程(2)

    上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...

随机推荐

  1. Java多线程:CopyOnWrite容器

    一.什么是CopyOnWrite容器 CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然 ...

  2. [poj2367]Genealogical tree_拓扑排序

    Genealogical tree poj-2367 题目大意:给你一个n个点关系网,求任意一个满足这个关系网的序列,使得前者是后者的上级. 注释:1<=n<=100. 想法:刚刚学习to ...

  3. 爬虫(requests)

    requests库包含两个对象:Response和Requests  Response对象属性:    r.status_code    HTTP请求的返回状态,200表示成功 r.text     ...

  4. oracle、导出、导入

    一.数据库导入: No1.查询所有表中那些是空表. select table_name from user_tables where NUM_ROWS=0; No2.拼接字符串生成SQL执行语句. s ...

  5. JavaScript(简介)【Javascript历史】

    学习一门知识应该了解其背景,很多人认为会用就行,起初我也是这么认为的,但后来才知道对起源的了解也很必要,从事javascript开发5年,今天开始总结一些笔记,分享下. 一.什么是JavaScript ...

  6. 设置linux虚拟机的固定ip、防火墙的一些操作

    安装好虚拟机后,需要设置其固定ip,这样才可以连接该虚拟服务器 设置步骤如下 1.进入network-scripts目录 cd /etc/sysconfig/network-scripts 2.编辑n ...

  7. 201621123060《JAVA程序设计》第十一周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...

  8. 【评分】集美大学软件工程1413班工程项目管理个人作业2——APP案例分析

    [评分]个人作业2--APP案例分析 作业要求 作业地址及完成情况 博文要求 通过分析你选中的产品,结合阅读<构建之法>,写一篇随笔,包含下述三个环节的所有要求. 第一部分 调研, 评测 ...

  9. 在Nginx上配置多个站点

    有时候你想在一台服务器上为不同的域名运行不同的站点.比如www.siteA.com作为博客,www.siteB.com作为论坛.你可以把两个域名的IP都解析到你的服务器上,但是没法在Nginx的根目录 ...

  10. java 注解的实现机制

    一.什么是注解: 注解是标记,也可以理解成是一种应用在类.方法.参数.属性.构造器上的特殊修饰符.注解作用有以下三种: 第一种:生成文档,常用的有@param@return等. 第二种:替代配置文件的 ...