CAS的.NET客户端的配置示例

一、CAS客户端支持.NET部署,而且支持NuGet直接部署到项目,具体特性如下:

1.支持CAS1.0、CAS2.0和SAML1.1协议

2.支持CAS单点登录

3.支持Microsoft ASP.Net 窗体身份认证框架的应用平台整合

二、ASP.Net的认证方式及CAS客户端的ASP.NET认证原理

ASP.Net身份验证有三种方式,一是基于windows验证,二是基于Form验证,三是Passport验证。

第一种方式下,windows操作系统和IIS服务器直接处理身份验证,只要客户机加入了服务器域,网站开发、部署和运维均无需考虑具体验证过程;

第三种方式下,是passport方式验证,passport本身就是一种齐备的统一认证方式,可以完全替代CAS,下面只考虑第二种。

第二种身份验证方式是我们这次讨论的范围,这种方式的原理是CAS客户端通过ASP.Net自身的Form认证实现的,

具体是用httpModel拦截检查客户端票据(ticket),达到对功能页面的控制。

三、ASP.Net项目配置步骤

1.引用dll:DotNetCasClient.dll

<configSections>

<section name="casClientConfig" type="DotNetCasClient.Configuration.casClientConfiguration, DotNetCasClient" />

</configSections>

2.属性配置

A.casServerLoginUrl:身份认证时redirect的认证地址,浏览器所在机器要配置cas服务器的域名。

B.serverName:认证通过后redirect到的需要访问的应用的地址。

C.casServerUrlPrefix:CAS服务的访问地址。用来定义cas服务的 /serviceValidate接口,使用的URL就是${casServerUrlPrefix}serviceValidate。

注意此处的配置需和证书中的服务器域名保持一致,并且在Web应用的服务器上配置cas服务的访问域名。

D.ticketValidatorName:指定CAS Ticket使用的协议。

3.configuration的其他可选属性配置

A.Gateway:

B.renew:

C.singleSignOut:

D.ticketTimeTolerance:

E.notAuthorizedUrl:

F.serviceTicketManager:

G.proxyTicketManager:

H.gatewayStatusCookieName:

I.cookiesRequiredUrl:

J.gatewayParameterName:

4.配置示例

<casClientConfig casServerLoginUrl="https://cas.XXXXXX.com/cas/login"

casServerUrlPrefix="https://cas.XXXXXX.com/cas" serverName="cas.XXXXXX.com"

notAuthorizedUrl="~/NotAuthorized.aspx"

cookiesRequiredUrl="~/CookiesRequred.aspx"

redirectAfterValidation="true"

gateway="false"

renew="false"

singleSignOut="true"

ticketTimeTolerance="5000"

ticketValidatorName="CAS20"

proxyTicketManager="CacheProxyTicketManager"

serviceTicketManager="CacheProxyTicketManager"

gatewayStatusCookieName="casGatewayStatus" />

相应地ASP.NET的配置如下:

<system.web>

<authentication mode="Forms">

<Forms

loginUrl="https://server.XXXXX.com/cas/login"

timeOut="30"

defaultUrl="~/Default.aspx"

cookieless="UseCookies"

slidingExpiration="true"

path="/ApplicationName/" />

</authentication>

......

</system.web>

并且配置HTTPModel

<httpModels>

<add name="DotNetCasClient"type="DotNetCasClient.cas.Authentication.Model,DotNetCasClient">

</httpModels>

三、问题

httpModel验证ticket失败时会锲而不舍地无限验证下去:请求系统页面--》httpModel重定向--》

cas登录页面--》登录后的系统页面--》httpModel验证ticket失败--》重定向登录cas

一般地,这种问题是由系统session失效导致的,因此修改web.config文件即可

<sessionState mode="StateServer" cookieless="UseCookies" timeOut="64000" >

</sessionState>

代码实现时,要注意在登出时,要确保Form和Cas都登出,切记清除session,让cookie过期,

清除CAS服务端的验证ticket。

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

只有团队的精神是永存的,平台,生态!

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值