通过CAS与第三方应用系统(以下统一简称为【集成系统】)集成时,应用系统开发商需要完成以下四步工作:
一、.NetWeb客户端配置
配置方式有两种:
第一种:安装DotNetCasClient,安装步骤可度,点此下载
第二种:将我提供的DotNetCasClient.dll和DotNetCasClient.pdb文件拷贝到项目的bin目录下。(附件,提取码:qwer)
二、修改项目的web.config文件
1、<configuration >标签
此标签中需要新增以下代码:
<configuration><--新增--><configSections><sectionname="casClientConfig"type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/></configSections><casClientConfigcasServerLoginUrl=http://cas.jnsjsxy.com:3193/cas/logincasServerUrlPrefix="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><validationvalidateIntegratedModeConfiguration="false"/><modules><removename="DotNetCasClient"/><addname="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>标签
此标签中需要新增以下代码:
<!--新增--> <authenticationmode="Forms"> <forms loginUrl=http://cas.jnsjsxy.com:3193/cas/login timeout="30" defaultUrl="~/Default.aspx" cookieless="UseCookies" slidingExpiration="true" path="/"/> </authentication> <authorization> <denyusers="?"/> <allowusers="*"/> </authorization> <httpModules> <addname="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/> </httpModules> <sessionStatemode="StateServer" cookieless="UseCookies" timeout="36000"></sessionState> <!--结束--> </system.web> |
注意:
此处需要注意丢失authentication和authorization两部分配置将无法正常工作。
配置httpMoudules配置是为了解决“重定向过多”的问题
三、其他事项
1、获取唯一标识
如果要实现与cas的统一集成,需要各个业务系统与cas的身份做唯一标识,用此唯一标识进行约束,cas登录验证返回的也是该标识字段(当然可以包含多个消息报文)。
需要对原有业务系统的验证部分进行微调。
只需要判断是否能取到用户名即可。获取用户名的方式
stringusername = System.Web.HttpContext.Current.User.Identity.Name;
此处得到的为cas与各系统之间约定的唯一标识。
2、单点登出
Cas提供单点登出(注销退出)的功能,可以使用此功能退出业务系统时,自动退出所有统一认证的系统,避免可以直接登录其他业务系统。
使用URL链接地址:
注销之前,首先要清除浏览器cookie
HttpCookieaCookie; stringcookieName; intlimit=Request.Cookies.Count; for (inti=0; i<limit; i++) { cookieName=Request.Cookies[i].Name; aCookie=newHttpCookie(cookieName); aCookie.Expires=DateTime.Now.AddDays(-1); Response.Cookies.Add(aCookie); }