asp.net项目与开源单点登录项目CAS的结合
这段时间搞的一个asp.net mvc项目,采用了单点登录。
这个单点登录就是CAS,一个开源的JAVA项目。当然,这并不影响ASP.NET项目结合它来进行登录。因为各自分工不同:单点登录(管它是不是单点)只负责账户校验,而账户的登录信息读取,以及做何种进一步的处理,那是应用项目自己的事。
就好比,单点登录是写字楼的安保。他在核实来访者的来访目的,进行来访者身份登记,通过安检之后,就放来访者进这个大厦了。至于位于写字楼里的某家公司(应用项目)要如何接待这个来访者,那是这家公司的事情。
总结如下:
1、采用 单点登录 + asp.net form认证
单点登录网站负责校验;本项目负责存储登录认证信息。asp.net form认证为系统自带
2、访问本项目时,form认证首先检查是否已认证(asp.net form认证本身机制),否的话跳到单点登录;是的话,由本项目进一步校验。
3、本项目校验,如果发现缓存的登录信息丢失,则根据form认证记录的登录信息(简单),重新检索登录信息(详细)并缓存
4、无论单点登录、form认证还是本地缓存,都依赖cookie。
5、form认证主要在web.config里配置,代码里也有应用。
6、本项目触发登录信息校验的事件,在控制器的基类:AdminControllerBase.OnActionExecuting
web.config:
<!--Form认证设置Start-->
<authentication mode="Forms">
<forms name=".ASPWeb" loginUrl="http://192.168.0.22:8080/cas/login"
timeout="2880" defaultUrl="~/Home/Index"
cookieless="UseCookies" slidingExpiration="true" enableCrossAppRedirects="true" path="/" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
AdminControllerBase.OnActionExecuting:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
...
if (this.LoginInfo == null)
{
LoginHelper.Instance.Login();
return;
}
...
}
LoginHelper.cs
public void Login()
{
if (HttpContext.Current != null)
{
//是否已经form验证?
string username = HttpContext.Current.User.Identity.IsAuthenticated ? HttpContext.Current.User.Identity.Name : "";
if (!string.IsNullOrEmpty(username))
{//如果当前用户已登录单点登录系统
var loginInfo = 。。。
if (loginInfo != null)
{
//缓存loginInfo...
}
}
else
{
Logout();
}
}
}
相关文章
asp.net forms认证
asp.net项目与开源单点登录项目CAS的结合的更多相关文章
- 开源单点登录系统CAS入门
一.什么是CAS CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.CAS 具有以 ...
- SSO单点登录Spring-Security & CAS使用手册
1.1概述 1.1.1单点登录介绍 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可 ...
- 单点登录系统CAS筹建及取得更多用户信息的实现
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- CAS单点登录(一):单点登录与CAS理论介绍
一.什么是单点登录(SSO) 单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录. 单点登录(Single Sign On),简称 ...
- 单点登录之CAS原理和实现(转载)
转载源:https://www.jianshu.com/p/613c615b7ef1 单点登录之CAS原理和实现 来源于作者刘欣的<码农翻身> + 自己的备注理解 这家集团公司财大气粗,竟 ...
- java单点登录系统CAS的简单使用
转:http://blog.csdn.net/yunye114105/article/details/7997041 背景 有几个相对独立的java的web应用系统, 各自有自己的登陆验证功能,用户在 ...
- Java项目接入sso单点登录
最近在落地cat(java开发的一款开源监控系统)接入公司的内部项目,其中有项需求是接入公司的sso单点登录系统.研究了公司之前java项目接入sso系统,大部分是采用spring框架,然后依赖spr ...
- 【C#】ASP.NET网页中添加单点登录功能
背景 首先,要说明的是,原先需求定义的是,同一个账号只能同时有一个人来登录,如果另外一个登录的话,前一个登陆者就自动被踢掉.本来原先要做成存储到服务器的数据库中,但是后来如果是非正常退出的话 下次就没 ...
- 单点登录实现----CAS(一)
最近我们部门交接了一个新项目--- passport,即我司的单点登录系统,虽然没有交接给我,但是个人觉得登录技术是个很好的知识,于是就忙里偷闲简单地学习了下. 单点登录SSO(single sign ...
随机推荐
- python 容器 用户注册登录系统
1. 列表和普通变量有什么区别 列表是数据类型,普通变量是用来存储数据的 可以把列表赋值给普通变量 2.存在列表 a = [11, 22, 33], 如何向列表中添加(增)新元素 44 a.appen ...
- img元素srcset属性浅析
img srcset 属性 img 元素的 srcset 属性用于浏览器根据宽.高和像素密度来加载相应的图片资源. 属性格式:图片地址 宽度描述w 像素密度描述x,多个资源之间用逗号分隔.例如: &l ...
- python对象销毁(垃圾回收)
Python 使用了引用计数这一简单技术来跟踪和回收垃圾. 在 Python 内部记录着所有使用中的对象各有多少引用. 一个内部跟踪变量,称为一个引用计数器. 当对象被创建时, 就创建了一个引用计数, ...
- Java学习之正则表达式
Java正则表达式字符串模式. 正则表达式可以用来搜索.编辑和处理文本. 正则表达式不尽限于一种语言,但在每一种语言中又细微的差别. java.util.regex包中主要有这3个类: Pattern ...
- hdu 2167 状态压缩
/*与1565的解法差不多*/ #include<stdio.h> #include<string.h> int map[16][16]; int dp[2][1<< ...
- fedora安装后,yum命令不能使用,Cannot retrieve metalink for repository: fedora. Please verify its path and try again 解决方法
fedora安装后,yum命令不能使用,Cannot retrieve metalink for repository: fedora. Please verify its path and try ...
- POJ 1144 割点
题意 :求割点的数量 #include<iostream> #include<stdio.h> #include<vector> #include<strin ...
- Sudoku---hdu2676(数独DFS)
http://poj.org/problem?id=2676 递归深搜 #include<stdio.h> #include<string.h> #include<alg ...
- HDU——2119 Matrix
Matrix Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- Java实验--课上提到的随机数生成原理简单实现(不利用库生成随机数的简单算法)
对于随机数的实验,根据课程上的教程,有如下的公式: 对应的变量参数的说明: 其中对应的Mouduls变量对应的就是公式中a的值,在公式中的含义就是相当于要循环多少个数才重复的一个值. Multipli ...