最近开始接触做与其它认证系统的集成,其中有个是与某学校的CAS服务器集成。cas服务器认证成功后返回的数据格式如下:

其中红色部分是我需要取出来用于识别用户身份的数据。

一开始,我根据网上的教程,引用了DotNetCasClient.dll,并对web.config进行了一些配置,首先,在configuration配置节下,增加红色部分内容,主要是对cas做一些基本的配置

配置完成后,在登录页面,我们通过如下方式获取用户数据

所有工作做完以后,发现问题来了,登录以后,我方系统根本就无法获取到Assertion.Attributes里的东西,这里面总是空的。后来在网上包含baidu和google进行了查询都未能找到解决办法。无奈,可好跟踪源代码了。所以,我从 https://github.com/apereo/dotnet-cas-client 上下载了源代码,并新创建了一个新的最简单的测试站点。

经过跟踪源代码后发现,原来,我方收到的数据是正确的,但是在DotNetCasClient 进行反序列化的时候,把<cas:atrributes>及节点下的所有数据都丢失了。所以默认可能取到<cas:user>节点下的数据。

为了实现DotNetCasClient 能获取到<cas:attributes>我们必须对源代码进行改进。具体改动点如下:

通过这样子的改造,在应用程序中,我们的Assertion.Attributes里就有值了,然后我们就可以使用这里面的值,做一些与业务相关的操作和验证。

本人极少写博客,但这个问题感觉网上的答案比较少,特别是.net方面的,所以特写此记录,以期能对遇到同样问题的朋友有所帮助。

最新文章

  1. Redis、Memcache和MongoDB的区别(转)
  2. 常用的java类型转json的转换类
  3. DataFrame使用mysql数据
  4. ACE_linux:UDP通信
  5. 3.2版uploadify详细例子(含FF和IE SESSION问题)
  6. CSS自学笔记(8):CSS拓展(一)
  7. A SPI class of type org.apache.lucene.codecs.PostingsFormat with name &#39;Lucene40&#39; does not exist.
  8. CF 313 DIV2 B 树状数组
  9. Google Chrome谷歌/火狐/Safari浏览器开发者工具基本使用教程
  10. 结巴库及词频统计bb
  11. 六、Django模型基础第一节
  12. Redis纠错
  13. MyBatis知识点总结(一)
  14. WordPlayer
  15. 【托业】【新托业TOEIC新题型真题】学习笔记7-题库二-&gt;P1~4
  16. [php] 索引数组合并选择两数组相加
  17. Express web框架
  18. 部署php的正确姿势
  19. Python爬虫项目--爬取某宝男装信息
  20. SMTP 通过 ssh 通道发送垃圾邮件

热门文章

  1. linux操作系统基础篇(八)
  2. MySQL plugin结构
  3. 【转】MYSQL DBA知识了解-面试准备
  4. .NET之RabbitMQ学习笔记(二)-安装
  5. 已知前序(后序)遍历序列和中序遍历序列构建二叉树(Leetcode相关题目)
  6. Cocos2D-X屏幕适配新解
  7. 问题(一)---线程池,锁、堆栈和Hashmap相关
  8. Python 数据库备份脚本
  9. 【原创】2、小程序域名配置之申请支持SSL(https)
  10. IntelliJ IDEA(三) :常用快捷键