博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DotNetCasClient 如何获取Cas服务器返回的attributes中的数据
阅读量:7016 次
发布时间:2019-06-28

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

最近开始接触做与其它认证系统的集成,其中有个是与某学校的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方面的,所以特写此记录,以期能对遇到同样问题的朋友有所帮助。

转载于:https://www.cnblogs.com/lention/p/8135782.html

你可能感兴趣的文章
退出unity运行
查看>>
linux -- ubuntu dash bash
查看>>
day35-1 类的三大特性---继承,以及类的派生
查看>>
以前常用的攻击软件源代码
查看>>
MVC3 上传文件
查看>>
一个很easy的脚本--php获取服务器端的相关信息
查看>>
leetcode 【 Set Matrix Zeroes 】python 实现
查看>>
cocos2d的常用动作及效果总结之一: Basic actions
查看>>
Cocos2d API 解析之Texture2d
查看>>
【object-c基础】Object-c基础之五:在项目开发中Xcode的常用功能
查看>>
work6的code和问题
查看>>
初识Java
查看>>
css简单学习属性2---背景图片
查看>>
python进阶1--数据库支持
查看>>
Ubuntu server12.04 eth0网卡启动
查看>>
as CPU 优化【转】
查看>>
人月神话阅读笔记之一
查看>>
IIS发布的网站,内网和外网不能访问的解决办法
查看>>
闰年判断
查看>>
脑网络基础
查看>>