(三)实现 ASP.NET WebForm Client
1. 下载.NET CAS client。.NET CAS Client 下载地址:https://wiki.jasig.org/display/CASC/.Net+Cas+Client
下载“dotnet-client-1.0.2-bin.zip”并解压缩。
2. 配置 CAS DotNetClient
以管理员身份启动Visual Studio(目的为了随后可以直接将网站发布到IIS),打开“DotNetCasClient.vs2010.sln”解决方案。
(1)项目“DotNetCasProxyDemoApp”暂时用不到,从解决方案中移除。
(2)将“DotNetCasClient”项目中“Properties”文件夹下的“AssemblyInfo.cs”删除,将“AssemblyInfo.cs.tmpl”重命名为“AssemblyInfo.cs”。
(3)打开将“DotNetCasClient”项目中“Properties”文件夹下的“AssemblyInfo.cs”,将所有“$WCREV$”替换成“0”(或其它表示版本的数字)。
(4)将“ExampleWebSite”项目设置为启动项。
(5)将“ExampleWebSite”项目根文件夹下的“web.config.sample”重命名为“web.config”
(6)打开“web.config”文件,找到“casClientConfig”节点,将“casServerLoginUrl”属性设置为“https://10.58.8.219:8443/cas/login”,将“casServerUrlPrefix”属性设置为“https://10.58.8.219:8443/cas/”,
将“serverName”属性设置为“http://sso.centanet.com:8102”,
(7)从“web.config”文件中找到“”节点,将“loginUrl”属性设置为“https://10.58.8.219:8443/cas/login”,将“path”属性设置为“/”。
(8)保存全部修改,重新编译解决方案。
3. 调试 CAS DotNetClient
(1)鼠标右击“DotNetCasClient”项目根目录下的“Default.aspx”,选择“在浏览器中查看...”
(2)单击“Authenticated Users Only”连接
(3)输入用户名、密码(均为“admin”,或均为“bob”),CAS自动完成登录并重定向回原有网站。
至此,基于ASP.NET WebForm的CAS客户端已经完全调试通过。
6. 关于DotNetClient注销问题
关于DotNet注销网上有很多介绍的材料。我这里就不再多说什么了。留下个链接供大家参考。《解释CAS Logout问题》
为了便于查看,将《解释CAS Logout问题》一文的主要内容放在下面便于查阅:
CAS Logout是一个非常费解的问题,我在这里简单解释一下:
假设有webapp1, webapp2, cas server,webapp1, webapp2均受cas server保护。
第1种不能logout的情况:
1)登录了WebApp1,redirect到caserver,casserver认证后,再redirect到webapp1,ok!
2)http方式 lougout casserver1,即http://yale_casserver:8080/cas/lougout,显示logout成功
3)访问webapp2,还能访问!这是非常正常的一种情况,因为你不通过https来注销,casserver怎么“杀”掉它通过https发给你的TGC Cookie?
第2种不能logout的情况:
1)登录了WebApp1,redirect到caserver,casserver认证后,再redirect到webapp1,ok!
2)https方式 lougout casserver1,即https://yale_casserver:8443/cas/lougout,显示logout成功
3)访问webapp1,还能访问!访问webapp2,不能访问,重定向到casserver要求登录!这也是非常正常的一种情况,因为你已经能够访问,你继续可以继续访问,CASLogout不能阻止你访问webapp1,它只能阻止你访问webapp2,因为你已经被允许访问webapp1,而webapp2则还没有,如果你在(1)的时候,顺带也访问webapp2,那么你的注销将毫无作用了,CAS无法阻止你访问这两个webapp,因为你有Service Ticket。
如果你对此费解,那时因为你已为Logout就是退出系统,那我只能表示遗憾,因为CAS Logout的作用不是这样,它的作用是阻止你继续通过TGC(它简单地清楚了IE的TGC Cookie)来获取ST,阻止你获取通向其他web应用的Ticket。
所以,用完webapp1的时候,注销,然后再关闭掉IE就彻底Logout了。
参考http://www.cnblogs.com/zhenyulu/archive/2013/01/22/2870936.html
3. 调试 CAS DotNetClient
(1)鼠标右击“DotNetCasClient”项目根目录下的“Default.aspx”,选择“在浏览器中查看...”