通过CAS与第三方应用系统(以下统一简称为【集成系统】)集成时,应用系统开发商需要完成以下四步工作:
一、.NetWeb客户端配置
配置方式有两种:
第一种:安装DotNetCasClient,安装步骤可度,点此下载
第二种:将我提供的DotNetCasClient.dll和DotNetCasClient.pdb文件拷贝到项目的bin目录下。(附件,提取码:qwer)
二、修改项目的web.config文件
1、<configuration >标签
此标签中需要新增以下代码:
<configuration> <--新增--> <configSections> <section name="casClientConfig" type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/> </configSections> <casClientConfig casServerLoginUrl=http://cas.jnsjsxy.com:3193/cas/login casServerUrlPrefix="http://cas.jnsjsxy.com:3193/cas/" serverName="http://localhost:3502" notAuthorizedUrl="~/NotAuthorized.aspx" cookiesRequiredUrl="~/CookiesRequired.aspx" redirectAfterValidation="true" gateway="false" renew="false" singleSignOut="true" ticketTimeTolerance="5000" ticketValidatorName="Cas20" proxyTicketManager="CacheProxyTicketManager" serviceTicketManager="CacheServiceTicketManager" gatewayStatusCookieName="casGatewayStatus" /> <!--结束--> <system.web>此处省略</system.web> <!--新增--> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <remove name="DotNetCasClient"/> <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/> </modules> </system.webServer> <system.diagnostics/> <!--结束--> </configuration>
各个节点代表的含义说明:
<casServerLoginUrl>指的是CAS Server的登录URL;
<casServerUrlPrefix>指的是CAS Server的验证URL。
<serverName>指的是当前集成系统所在的服务器和端口号,服务器可以是机器名、域名或ip,建议使用域名。端口不指定的话默认是80(此处不能附加应用名称)。
2、<system.web>标签
此标签中需要新增以下代码:
<!--新增--> <authentication mode="Forms"> <forms loginUrl=http://cas.jnsjsxy.com:3193/cas/login timeout="30" defaultUrl="~/Default.aspx" cookieless="UseCookies" slidingExpiration="true" path="/"/> </authentication> <authorization> <deny users="?"/> <allow users="*"/> </authorization> <httpModules> <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/> </httpModules> <sessionState mode="StateServer" cookieless="UseCookies" timeout="36000"></sessionState> <!--结束--> </system.web> |
注意:
此处需要注意丢失authentication和authorization两部分配置将无法正常工作。
配置httpMoudules配置是为了解决“重定向过多”的问题
三、其他事项
1、获取唯一标识
如果要实现与cas的统一集成,需要各个业务系统与cas的身份做唯一标识,用此唯一标识进行约束,cas登录验证返回的也是该标识字段(当然可以包含多个消息报文)。
需要对原有业务系统的验证部分进行微调。
只需要判断是否能取到用户名即可。获取用户名的方式
string username = System.Web.HttpContext.Current.User.Identity.Name;
此处得到的为cas与各系统之间约定的唯一标识。
2、单点登出
Cas提供单点登出(注销退出)的功能,可以使用此功能退出业务系统时,自动退出所有统一认证的系统,避免可以直接登录其他业务系统。
使用URL链接地址:
注销之前,首先要清除浏览器cookie