最近在研究单点登录,发现用的最广的就是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. Robotlegs框架1.5简介

    该框架的1.5版本位于https://github.com/robotlegs/robotlegs-framework/tree/version1,现在已经出了重新架构的2.0版本,所以我决定先研究已 ...

  2. noi 2985 数字组合

    题目链接: http://noi.openjudge.cn/ch0206/2985/ 2985:数字组合 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有n个正 ...

  3. rmi远程调用

    1.在服务器端程序中的spring-servlet.xml中添加 <bean id="userService" class="org.springframework ...

  4. 设置MySQL自动增长从某个指定的数开始

    自增字段,一定要设置为primary key. 以指定从1000开始为例.1 创建表的时候就设置: CREATE TABLE `Test` ( `ID` int(11) NOT NULL AUTO_I ...

  5. JSP 基础语法

    1.JSP简介 含义:是运行在服务器端的java页面,是动态网页技术,开发时采用html嵌套java代码的方式实现的 JSP的执行流程是什么? 翻译阶段:web服务器收到jsp请求时,把jsp文件翻译 ...

  6. ubunt tmux X Error of failed request

    X Error of failed request:  BadName (named color or font does not exist)  Major opcode of failed req ...

  7. oracle 之 游标

    本期主题  灰蓝 游标用来处理从数据库中检索的多行记录(使用SELECT语句)存放的是select 的结果 利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集 --隐式游标 begin upd ...

  8. MySQL学习笔记--基本操作

    1.登录数据库 在命令行输入 "mysql -u username -p" 回车后输入密码 2.选择数据库 USE datebase name,选择要操作的数据库 3.显示所有数据 ...

  9. 关于如何写UI及屏幕适配的一些技巧

    因为公司开启了一个新的iOS项目, 所以近期比较忙, 没有更新博客,今天打算总结一下关于UI布局及屏幕适配的一些实战技巧,尤其使用纯代码,会对提升效率及代码易于维护等方面有明显帮助,这里提到的没有使用 ...

  10. sql server 自增长id 允许插入显示值

    --允许插入显示插入主键id的值SET IDENTITY_INSERT [T0002_SType] ON 执行insert插入语句------------------ --关闭 插入显示值SET ID ...