.NetWeb集成cas

通过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>

注意:

此处需要注意丢失authenticationauthorization两部分配置将无法正常工作。

配置httpMoudules配置是为了解决重定向过多”的问题

​三、其他事项

1、获取唯一标识

如果要实现与cas的统一集成,需要各个业务系统与cas的身份做唯一标识,用此唯一标识进行约束,cas登录验证返回的也是该标识字段(当然可以包含多个消息报文)。

需要对原有业务系统的验证部分进行微调。

只需要判断是否能取到用户名即可。获取用户名的方式

string username = System.Web.HttpContext.Current.User.Identity.Name;

此处得到的为cas与各系统之间约定的唯一标识。

2、单点登出

Cas提供单点登出(注销退出)的功能,可以使用此功能退出业务系统时,自动退出所有统一认证的系统,避免可以直接登录其他业务系统。

    使用URL链接地址:

注销之前,首先要清除浏览器cookie

                HttpCookie aCookie;
                string cookieName;
                int limit = Request.Cookies.Count;
                for (int i = 0; i < limit; i++)
                {
                    cookieName = Request.Cookies[i].Name;
                    aCookie = new HttpCookie(cookieName);
                    aCookie.Expires = DateTime.Now.AddDays(-1);
                    Response.Cookies.Add(aCookie);
                }



上一篇:Linux安装MySQL


下一篇:快速搭建云服务器必备环境LAMP