最近在研究单点登录,发现用的最广的就是cas了,查了下资料,发现有人写了详细的说明

地址:http://www.cnblogs.com/zhenyulu/archive/2013/01/22/2870838.html

记录下我按照上面的文章搭建cas遇到的坑

1.我下载的tomcat是8.5的,发现按照上面的配置方法,SSL死活配不通,去网站下了7.0的就可以

2.循环重定向的问题,按上面的方法进行了修改和配置还是会出现循环重定向,直到删除了配置文件authentication节点下的path,就OK了

然后是测试在使用.Net Mvc接入Cas

1.先配置好了webconfig,参数以及httpmodel注册等

2.写好自己的验证控制器

 public override void OnAuthorization(AuthorizationContext filterContext)
{
if (!HttpContext.Current.User.Identity.IsAuthenticated)
{ DotNetCasClient.CasAuthentication.RedirectToLoginPage();
return;
}
else
{
HttpContext.Current.Session["UserName"] = CasAuthentication.CurrentPrincipal.Identity.Name;
}
}

3.在自己的控制器上写下该特性,然后访问网站就能跳转到CAS的登录网站,调试的时候发现客户端在连接的时候会多次在服务器和客户端之间跳转,尝试连接-获取票据-连接成功返回,貌似就是这么个过程

  [CasFilter]
public ActionResult Index()
{
return View();
}

4.做完单点登录,做单点注销,发现几个问题,

  1)调用CAS的注销地址:serverip/cas/logout是可以正常注销的

  2)使用post调用SingleSignOut方法是无效的;

  3)SingleSignOut方法会产生一个重定向,即跳转到服务器进行注销,但这个重定向有一个回调地址,也就是你注销时调用的控制器,比如 Account/Logout,这样会再次跑到你的注销方法里面去,在过认证过滤器的时候,因为已经注销就会跳转到认证登陆界面,此时的访问的是logout的控制器,因此登陆回调地址还是logout,so,死循环了,登陆-注销-登陆-注销

  4).鉴于上述原因,在logou方法中调用SingleSignOut后手动重定向到Home/Index,但是这样又有一个问题,singleSignOut调用的重定向执行时间可能比执行重定向到主页慢,这样能正常跳转,但是会明显的看到浏览器地址栏有两次跳转,暂时没想到其他的好办法去解决这个问题;

5.在做登陆判断的时候一开始用的是CasAuthentication.CurrentPrincipal是否有值来判断,但发现无论是登陆和注销都会要多次刷新界面才有效果的情况,所以改用asp.net提供的验证字段来判断

6.昨天又发现个问题,MVC客户端取不到cas登陆用户的详细信息,调试后发现是响应信息XML序列化的时候找不到对应的字段导致直接被过滤掉了,而且获取信息的地方也没有传值过去,修改源代码添加对应的字段,手动传参

7.今天又发现了个悲剧的问题,编辑器中的富文本内容传不过去,其实在后台是已经使用了MVC的ValidateInput(false),但子啊经过cas的httpmodul时,还是抛错了,修改配置文件,禁用掉整个web的验证有效果,但这样做好像太不安全了。

8.鉴于安全原因将html内容使用js的encodeURIComponent编码后再传到后台,再后台再解码就行了。

cas 在.net 下的单点登录实现及 ,Net Mvc的接入的更多相关文章

  1. 使用 CAS 在 Tomcat 中实现单点登录 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/

    developerWorks 中国 技术主题 Open source 文档库 使用 CAS 在 Tomcat 中实现单点登录 单点登录(Single Sign On , 简称 SSO )是目前比较流行 ...

  2. CAS服务器集群和客户端集群环境下的单点登录和单点注销解决方案

    CAS的集群环境,包括CAS的客户应用是集群环境,以及CAS服务本身是集群环境这两种情况.在集群环境下使用CAS,要解决两个问题,一是单点退出(注销)时,CAS如何将退出请求正确转发到用户sessio ...

  3. CAS 在 Tomcat 中实现单点登录

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统 中,用户只需要登录一次就可以访问所有相互信任的应用系统.CA ...

  4. 【IBM】使用 CAS 在 Tomcat 中实现单点登录

    来源: IBM Developer http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/ 张 涛 (zzhangt@cn.ibm.com ...

  5. 使用 CAS 在 Tomcat 中实现单点登录

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.CAS ...

  6. 抛弃Https让Cas以Http协议提供单点登录服务

    本文环境: 1.apache-tomcat-7.0.50-windows-x86 2.cas-server-3.4.11 3.cas-client-3.2.1 将cas-server-webapp-3 ...

  7. cas sso单点登录系列8_抛弃Https让Cas以Http协议提供单点登录服务

    转:http://blog.csdn.net/ycyk_168/article/details/18668951 本文环境: 1.apache-tomcat-7.0.50-windows-x86 2. ...

  8. 【Java EE 学习 68】【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

  9. 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】

    单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...

随机推荐

  1. App创业者必看:如何选择免费数据分析平台

      笔者是一位移动互联网老兵,做过好几个App的开发运营工作,其中一些如今侥幸有了上亿用户.今天和大家聊一下App开发中,不能缺少的一个工具——数据分析系统 首先,App创业者为什么需要一个数据分析系 ...

  2. LR常见问题

    (1)LoadRunner录制脚本不弹出IE浏览器 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到打不开浏览器的情况,可以用下面的方法解决.启动浏览器,打开Internet选项对话 ...

  3. Mayor's posters(线段树+离散化POJ2528)

    Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 51175 Accepted: 14820 Des ...

  4. JAVA基础知识之NIO.2——Path,Paths,Files

    NIO.2 JDK7对NIO进行了重大改进,主要包含以下两方面 新增Path接口,Paths工具类,Files工具类. 这些接口和工具类对NIO中的功能进行了高度封装,大大简化了文件系统的IO编程. ...

  5. IntelliJ IDEA 14和Maven创建java web项目

    安装Maven 下载安装 去maven官网下载最新版. 解压到安装目录. 配置 右键桌面的计算机图标,属性–>高级系统设置–>环境变量,添加M2_HOME的环境变量,然后将该变量加入的PA ...

  6. sql视图实例

    一个视图是一个或一组SQL语句,存储在数据库中相关的名称.一个视图实际上是一个预定义的SQL查询中的表的形式组成. 一个视图可以包含一个表的所有行,或选择表中的行.从一个或多个表上写SQL查询创建一个 ...

  7. iOS - Xcode 常用快捷键

    Xcode 常用快捷键 1)文件: command + shift + n 新建项目 command + n 新建文件 command + control + n 新建空文件 command + o ...

  8. Excle隐藏及展开列

    当excle文档类目比较多的时候我们希望看第一列和某一列的对应关系可以选择隐藏中间列. 选中要隐藏的列,然后右键-->隐藏即可 需要展开的时候,选中:被隐藏列的前一列和后一列,然后当鼠标在列头( ...

  9. redis 安装及相关问题解决

    安装redis 下载,或者用scp命令从其他服务器拷贝 一.安装 解压:tar -zxvf redis-3.0.1.tar.gz 进入:cd redis-3.0.1 编译: make 二.解决问题 1 ...

  10. [Selenium] 拖拽一个 Component 到 Workspace

    先使Component可见,获取Component位置信息,获取Workspace位置信息,点击Component并拖拽到Workspace,最后释放.(调试时dragAndDropOffset()方 ...