项目需求:开发系统A 对接客户公司的cas 认证系统 B,实现单点登录

业务场景描述:打开A 系统地址,判断Cookie 是否登录状态,如果未登录,跳转B登录界面;如果已登录,直接获取到cookie 的当前登录用户信息,进入B系统

       (同时满足:其他接入cas 认证的 系统实现sso)

引入Cas 插件dotnetCasClient

按照下述配置

<configuration>
<configSections>
<!--定义casClientConfig-->
<section name="casClientConfig" type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient" />
</configSections>
</configuration>

casServerLoginUrl cas 系统地址
casServerUrlPrefix cas 系统前缀
serverName      A 系统地址

<configuration>
<casClientConfig casServerLoginUrl="http://XXX/cas/login"
casServerUrlPrefix="http://XXX/cas/"
serverName="http://test/login.aspx" notAuthorizedUrl="~/NotAuthorized.aspx"
cookiesRequiredUrl="~/CookiesRequired.aspx"
redirectAfterValidation="true" gateway="false"
renew="false" singleSignOut="true" ticketTimeTolerance="5000"
ticketValidatorName="Cas20" proxyTicketManager="CacheProxyTicketManager"
serviceTicketManager="CacheServiceTicketManager"
gatewayStatusCookieName="CasGatewayStatus" />
</configuration>

WEB_ASPXAUTH  cas 插件获取到的cookie

A 系统进入页逻辑代码

if (HttpHelper.GetCookie("WEB_ASPXAUTH") != null && BasePage.GlobalInfo.UserInfo.UserID > 0)
Response.Redirect(base.BasePage.CorrectUrl("~/SiteMain.aspx"));

//cas登录跳到这里,成功认证cooking,失败返回login.aspx
try
{
if (CasAuthentication.ServiceTicketManager != null)
{

HttpCookie ticketCookie = Request.Cookies[FormsAuthentication.FormsCookieName];

if (ticketCookie != null)
{
SSOInfoBll infoBLL = new SSOInfoBll();
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(ticketCookie.Value);
if (ticket != null)
{
CasAuthenticationTicket casTicket = CasAuthentication.ServiceTicketManager.GetTicket(ticket.UserData);
if (casTicket != null)
{
EmpCode = casTicket.Assertion.PrincipalName;

}

}

}

}

}

.NET Cas 认证(基于Cookie)的更多相关文章

  1. .Net Core权限认证基于Cookie的认证&授权.Scheme、Policy扩展

    在身份认证中,如果某个Action需要权限才能访问,最开始的想法就是,哪个Action需要权限才能访问,我们写个特性标注到上面即可,[TypeFilter(typeof(CustomAuthorize ...

  2. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  3. 理解ASP.NET Core - 基于Cookie的身份认证(Authentication)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 通常,身份认证(Authentication)和授权(Authorization)都会放 ...

  4. (26)基于cookie的登陆认证(写入cookie、删除cookie、登陆后所有域下的网页都可访问、登陆成功跳转至用户开始访问的页面、使用装饰器完成所有页面的登陆认证)

    获取cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age ...

  5. CAS—认证原理

    CAS,Central Authentication Service—中央认证服务,是Yale 大学发起的一个企业级的.开源的项目,旨在为Web应用系统提供一种可靠的SSO解决方案.下面简单介绍SSO ...

  6. 基于 Cookie 的 SSO 中间件 kisso

    kisso  =  cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀.欢迎大家使用 kisso !! kisso 帮助文档 ...

  7. 基于Cookie的SSO登录分析和实现

    什么是SSO? 现在很多大的互联网公司都会有很多的应用,比如以下是淘宝网的截图: 天猫 聚划算 头条等都是不同的应用,有的甚至采用完全不同的域名,但是所有在淘宝注册的用户都是使用的一套用户名和口令,如 ...

  8. 【CAS单点登录视频教程】 第06集【完】 -- Cas认证 学习 票据认证FormsAuthentication

    目录 ----------------------------------------- [CAS单点登录视频教程] 第06集[完] -- Cas认证 学习 票据认证FormsAuthenticati ...

  9. 基于cookie共享的SSO中的遇到的问题

    什么是SSO? 现在很多大的互联网公司都会有很多的应用,比如以下是淘宝网的截图: 天猫 聚划算 头条等都是不同的应用,有的甚至采用完全不同的域名,但是所有在淘宝注册的用户都是使用的一套用户名和口令,如 ...

  10. CAS 认证

    Central Authentication Service http session 保持机制 1.  用户向服务端发送密码,服务端生成与用户对应的 sessionid 2. 服务端将这个 sess ...

随机推荐

  1. 从BIOS+MBR迁移到UEFI+GPT 并修复Ubuntu Grub2 UEFI引导

    之前在虚拟机里使用了默认配置安装了Ubuntu16.04,由于需要扩充磁盘空间不得不将磁盘从MBR分区表转换到GPT分区表. 简单介绍一下思路:首先通过Windows下的DiskGenius软件备份U ...

  2. 简单了解RPC实现原理-copy

    核心框架类 /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and pr ...

  3. DICOM-SCP,可以直接使用的SCP(.net framework 4.5)控制台接收端

    此程序引用的是Dicom.Core 4.0.8.0,也是最后一版支持部署在.net framework 4.5 或以下环境的.如需要部署在.net4.6.1以上的需要查看另一个文档. 1 using ...

  4. 从零开始构建一个gradle工程

    gradle init --type java-application 首先,确保您已经安装了Java和Gradle.您可以从官方网站下载并按照说明进行安装. 创建一个新的项目文件夹,并进入该文件夹. ...

  5. 【忍者算法】LeetCode必刷100题:一份来自面试官的算法地图(题解持续更新中)

    (本文字数2900,阅读大约需15分钟) 上一篇文章我们讨论了如何科学地刷题,今天我要带大家深入了解这100道精选题目背后的分类逻辑.作为一名面试官,我希望通过这篇文章,为大家绘制一张完整的算法知识地 ...

  6. 搭建基于Grafana+Prometheus+Node_exporter的性能监控与分析平台(Linux版)

    搭建基于Grafana+Prometheus+Node_exporter的性能监控与分析平台(Linux版) 在现代IT环境中,系统监控与分析是确保应用稳定性和高效性的关键.Prometheus与Gr ...

  7. Q:浏览器打开控制台报错:net::ERR_CONTENT_LENGTH_MISMATCH 206

    一.问题描述 F12查看浏览器的控制台,提示net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content) ,如下图, HTTP状态码206表示" ...

  8. Luogu P5298 PKUWC2018 Minimax 题解 [ 紫 ] [ 树形 dp ] [ 线段树合并 ] [ 概率 dp ]

    Minimax:线段树合并优化 dp 好题. 树形 dp 因为要求出每一个值的出现概率,首先我们可以想到一个很暴力的 dp 式子. 定义 \(dp_{i,j}\) 表示在节点 \(i\) 时,权值 \ ...

  9. FreeSql学习笔记——0.FreeSql启动!

    FreeSql FreeSql是功能强大的 .NET ORM,支持 .NetFramework 4.0+..NetCore 2.1+.Xamarin等支持 NetStandard 所有运行平台.支持  ...

  10. flutter-double小数点相加,会出现小数点很多位

    在我们进行两个double运算时,例如:2..0-1.1 不是想象的输出0.9,而是0.89999999999999999.其主要原因是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1 ...