博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dotnet cas client 实现单点登录,登出问题记录
阅读量:4986 次
发布时间:2019-06-12

本文共 1223 字,大约阅读时间需要 4 分钟。

单点登录功能实现,用到了cas,关于cas的详细介绍: https://apereo.github.io/cas/5.3.x/planning/Architecture.html

在项目使用时,服务端使用了基于JAVA CAS的服务端,

客户端使用asp.net,在asp.net中使用非常简单,github已有cas的.net 的 client ,链接:https://github.com/apereo/dotnet-cas-client

.net 端集成dotnetcasclient很简单,按照官方的实例如下

(1)注册casClientConfig Section

(2)新增 casClientConfig

(3)注册CasAuthenticationModule

(4)配置asp.net 的form登录

以上的配置都可以在DotnetCasClient的github的README.md 看到,具体配置的解释也是包含的

接下来就是发布网站到iis,就可以实现当前asp.net的站点的单点登录

dotnetcasclient集成中的问题

在集成中遇到了几个问题,这里做下备注

(1)cas服务端使用https,asp.net应用端使用了http,浏览网站出现循环重定向的错误

可以搜到很多类似问题的处理的文章,基本有三种种处理方法: 服务端和客户端使用相互信任的证书,修改sessionstate 和 修改源码。

参考了文章:   后,最终选择修改源码

(2)asp.net应用端的单点登出功能异常

在查阅cas的基本原理后,确定是应用端的认证在服务端登出后没有被销毁,关闭浏览器会被销毁,然而在实际应用中是不现实的,只能从服务端和客户端的配置入手

1)确认服务端的配置,允许单点登出

2)确认了客户端的配置,允许单点登出

官方signout的配置介绍: https://apereo.github.io/cas/development/installation/Logout-Single-Signout.html#single-logout-slo

然而,依然没有解决

最终只能跟踪dotnetclient的源码,经过调试发现,服务端登出,本地应用没有登出请求的通知。

最后发现由于是测试环境未分配正式域名,而测试和配置都是使用了域名进行验证,几台机器又未配置hosts导致。。。。

最终修改hosts的配置,将服务端和应用端的域名分别配置在hosts,问题得以解决

转载于:https://www.cnblogs.com/dpwow/p/10648704.html

你可能感兴趣的文章
新闻客户端的突破与创新
查看>>
网络通信引擎ICE的使用
查看>>
js滚动事件实现滚动触底加载
查看>>
架构妄想:AJAX + REST
查看>>
css垂直居中的问题
查看>>
如何正确从他人机器MySQL数据库下拷贝出.sql,再导入到自己windows下MySQL数据库(图文详解)...
查看>>
面向对象之选课系统
查看>>
logging模块、shutil模块、subprocess模块、xml模块
查看>>
Codeforces Round #423 B. Black Square
查看>>
TFTP(Trivial File Transfer Protocol,简单文件传输协议)
查看>>
OO第三单元作业总结
查看>>
使用时间戳解决缓存问题
查看>>
HTTP的客户端识别与cookie机制
查看>>
【SHOI2015】脑洞治疗仪(恶心的线段树,区间最大子段和)
查看>>
Educational Codeforces Round 17
查看>>
源码安装pipelineDB之CentOS7
查看>>
剑指Offer 斐波那契数列
查看>>
C#: string与byte[]互转
查看>>
hdu 5381 The sum of gcd
查看>>
控制台修改Mysql 密码
查看>>