最近在研究单点登录,发现用的最广的就是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. RegExp类型,单体内置对象

    1.RegExp类型:  1)什么是正则表达式:RegExp    --是一种规则,模式    --强大的字符串匹配工具    --创建:    --使用RegExp构造函数创建:var re=new ...

  2. android 常见的泄漏内存方法和 leakcanary 使用方法

    虽然VM接管了内存分配和回收,但是人类在解决问题的同时也会重新创造出一些新的问题,所以问题永远都解决不了,就产生各种稀奇古怪的就业机会了(跑题跑不停). 无论各种VM用什么算法管理内存, 造成内存泄漏 ...

  3. 事务码 ListSchema:查看Cube星型结构Schema

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. 自建数据源(RSO2)、及数据源增强

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. SQL疑难杂症【5 】大量数据查询的时候要考虑结果为空的情况

    最近几天怪事儿出奇的多,同一个工单.同一个产品,在A线可以正常生产,但是在H线死活都无法生产,系统直接提示TimeOut,监控发现有一条SQL语句执行缓慢,Copy出来仔细查看,很简单的一条语句,如下 ...

  6. XML与JSON的转换

    -(void)test {          //XML文本范例     NSString *testXMLString = @"Cake0.55RegularChocolateBluebe ...

  7. Redis - 发布和订阅

    一.概述 1). 发布和订阅是一种消息通信模式. 2). 优点:使消息订阅者和消息发布者耦合度降低,类似设计模式中的观察者模式. 二.发布和订阅 订阅命令: // 订阅一个或多个频道 // 返回值:v ...

  8. 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 ...

  9. mac 安装redis

    一.下载 官网http://redis.io/ (搞不懂为啥被墙) 二.安装 将下载的tar.gz文件复制到 /usr/local 文件夹下 解压 sudo tar -zxvf redis3.1.6. ...

  10. AC自动机模板

    贴份模板 胡大神和崔大神的组合模板 #include <iostream> #include<cstdio> #include<cstring> #include& ...