分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

DotNetCasClient 如何获取Cas服务器返回的attributes中的数据

发布时间:2023-09-06 01:33责任编辑:顾先生关键词:暂无标签

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

DotNetCasClient 如何获取Cas服务器返回的attributes中的数据

原文地址:https://www.cnblogs.com/lention/p/8135782.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved