1 概述
数通畅联某综合SOA集成项目的统一身份认证工作,需要第三方系统配合进行单点登录的配置改造,在项目中有需要进行单点登录配置的.NET应用系统,本文专门记录.NET应用和AEAI CAS的集成过程步骤,为后续类似的统一认证配置实现提供参考指导。
2 预期读者
数通畅联新员工
广大技术爱好者
3 环境信息
操作系统:Windows Server 2008
第三方系统.NET Framework 版本:V4.0
4 名词解释
AEAI CAS:是数通畅联基于开源Jasig CAS扩展开发提供的统一认证平台,经过多年的实践和积累,通过提供统一的认证服务、授权服务、集中管理用户信息;AEAI CAS统一身份认证平台功能包括:账号同步模块及接口、单点登录客户端配置、账号密码管理功能。AEAI CAS的功能架构如下图:
.Net: .NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。如果一个应用程序跟.NET Framework无关,它就不能叫做.NET程序。比如,仅仅使用了XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
5 配置过程
5.1 添加动态链接库
在进行CAS认证配置前,需要先添加CAS 的客户端文件即相关的动态链接库.dll文件,放置于.NET应用的bin目录,如下图:
5.2 配置web.config
在修改web.config文件之前,先了解web.config文件中一些标签的含义。
5.2.1 web.config详解
Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。
1.web.config
是以XML文件规范存储,配置文件分为以下格式:
a)configSections 位于配置文件的顶部配置节处理程序声明;
b)appSetting 可以定义应用程序的全局常量设置等信息;
c)system.Web 控制Asp.net运行时的行为;
d)sectionGroup 可以自定义分组,可以放到内部或其它标记的内部;
2.配置节的每一节
a)configuration 根元素,其它节都是在它的内部.
b)appSetting 此节用于定义应用程序设置项。
对一些不确定设置,还可以让用户根据自己实际情况自己设置 例如:
c)compilation
d)customErrors
e)globalization
f)sessionState
g) authentication
3.重点节点
a)authentication
作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点或应用程序级别声明。
< authentication> 元素必需与 节配合使用。
示例:以下示例为基于窗体(Forms)的身份验证配置站点,当没有登陆的用户访问需要身份验证的网页,网页自动跳转到登陆网页。
b)authorization
作用:控制对 URL 资源的客户端访问(如允许匿名用户访问)。此元素可以在任何级别(计算机、站点、应用程序、子目录或页)上声明。必需与 节配合使用。 示例:以下示例禁止匿名用户的访问
c)sessionState
为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。
5.2.2 CAS配置具体步骤
在web.config中添加CAS的相关配置信息 1.首先在configSections节下添加配置信息
2.然后在根节点configuration下添加
3.然后进行Forms的认证配置
4.然后在system.webServer下的modules节点下添加
5.最后在httpModules节下添加
5.2.3 相关问题及解决办法
问题一:配置后,经过单点登录的拦截遇到循环重定向问题 解决:
1.去掉authentication 下forms元素的path属性(无效)
2.sessionState属性配置调整(无效)
3.放入测试Default/Master页面等
4.deployContext.xml要添加allowedToProxy="true"属性,但是服务器仍然有问题。
问题原因:原来是认证过程中cas服务器端也要请求cas客户端,类似双向握手;把认证的地址改为配置的serverName改为外网地址,而不是localhost就可以了,因为如果是localhost,在正式服务器上的cas服务器端就找不到cas客户端了。
问题二:登录系统时的URL后需要添加“/”才能进入,否则出现循环重定向的问题 解决:去掉path属性解决问题
5.3 C#获取认证用户
统一身份认证配置完毕后需要,需要在.NET的C#中获取登录用户名,可以采用如下方式来获取: string userName = HttpContext.Current.User.Identity.Name;
6 相关说明
6.1 参考链接 1
.web.config详解参考 http://www.cnblogs.com/doublemm/archive/2011/08/25/2153235.html
2.sessionState属性详解 http://www.cnblogs.com/xinhaijulan/archive/2010/08/21/1805116.html
6.2 附件说明
附件为配置所需动态链接库文件、完整的web.config样例文件以及样例工程用于参考,其中:DotNetCasClient是CAS的的C#工程,ExampleWebSite是样例工程,对应实际项目。
文档及附件下载
相关推荐
结合这两项技术,开发者可以在ASP.NET应用中集成Flash动画,从而提高用户体验。 #### 二、在ASP.NET中插入Flash动画的方法 要在ASP.NET应用中插入Flash动画,最常用的方法是使用HTML中的`<object>`标签来嵌入Flash...
aeai CRM可能集成了Spring Security或Apache Shiro等安全框架,用于认证(Authentication)和授权(Authorization),保护用户数据和系统资源。 8. **测试与部署**:为了确保系统的稳定性和质量,aeai CRM应该包含...
【ArcGIS Engine、VS .NET和Windows控件开发GIS应用详解】 GIS(Geographic Information System)应用开发是一项涉及地图制作、地理数据管理和分析的技术。利用ArcGIS Engine、Visual Studio .NET(VS .NET)和...
本主题聚焦于"基于C#.NET和AE的GIS系统二次开发",这是一种常用的技术路线,其中AE(ArcGIS Engine)是Esri公司提供的用于构建桌面GIS应用的开发组件。 C#.NET是一种面向对象的编程语言,它被广泛应用于Windows应用...
在IT行业中,数据库管理和地理信息系统(GIS)是两个至关重要的领域。本文将深入探讨如何使用VB.NET编程语言,...理解并熟练运用这些步骤和技巧,可以有效地实现"AE 栅格数据入库 vb.net"的功能,满足GIS项目的需求。
AEAI HR人力资源管理系统是数通畅联软件基于AEAI DP开发的开源Java Web系统,用来协助管理公司人力、薪酬等事务, AE...AEAIHR系统功能架构包括基本信息模块,考勤模块,加班申请,请假申请,薪资管理和微信签到签退。
其语法简洁,且与.NET Framework的集成使得开发ArcObjects应用程序变得更为便捷。C#.NET提供了强大的类型系统和内存管理,有助于提高代码的稳定性和可维护性。 **ArcEngine简介** ArcEngine是ArcObjects的一个子集...
开源代码 agileai-aeaicrm-master.zip
在开发OPC应用程序时,首先需要安装OPC .NET API,然后使用SDK中的文档和示例代码来学习如何调用API方法。完成开发后,将应用程序部署到目标系统时,也要确保OPC .NET Redistributables已经安装,以便应用程序能正确...
### 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用 #### 一、项目背景及目标 本项目旨在通过使用ArcGIS Engine、Visual Studio .NET(简称VS .NET)以及Windows控件来构建地理信息系统(GIS)应用。项目...
OPC .NET 4.0 Client Projects 是一套专为.NET Framework 4.0设计的OPC客户端项目,它允许开发者构建能够与各种工业设备和控制系统进行通信的应用程序。OPC Foundation是推动这些标准发展的组织,致力于确保不同供应...
【基于VB.NET+AE地矿管理信息系统】是一个集成了地理信息系统(GIS)技术的软件开发项目,主要利用VB.NET编程语言以及ArcEngine(AE)组件进行构建。ArcEngine是Esri公司提供的一个强大的GIS开发平台,它允许开发者...
[置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析 http://blog.csdn.net/ae6623/article/details/8848107 目 录 1 引言 4 1.1 摘要 4 1.2 范围 4 1.3 读者对象 4 1.4 关键词 4 2 ...
总结来说,JLKEngine2017-20161110(AE10.2.2+.NET4.5)是一个集成了ArcGIS10.2强大功能和.NET4.5先进开发技术的“一张图”管理平台,它的出现使得地理信息的管理和应用变得更加便捷和高效,是现代GIS领域中的一个重要...
### .NET+AE开发中常见几种非托管对象的释放 ...正确管理非托管资源是保证.NET+AE应用程序稳定性和性能的关键。通过遵循上述指导原则和实践,可以有效避免内存泄漏和其他潜在问题,从而提升软件的质量和用户体验。
.Net开发的访问OPC服务器,采用多种模式实现与OPC...使用自定义接口,需要用到多个.NET Wrapper:OpcRcw.Ae.dll,OpcRcw.Batch.dll,OpcRcw.Comn.dll,OpcRcw.Da.dll,OpcRcw.Dx.dll,OpcRcw.Hda.dll,OpcRcw.Sec.dll;