从cas官网下载了.net client,按照样例配置了,
大概是这样:
<?xml version="1.0" encoding="UTF-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 -->
<configuration> <configSections> <section name="casClientConfig" type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/> </configSections> <appSettings/> <connectionStrings/> <casClientConfig casServerLoginUrl="http://localhost:8080/cas/login" casServerUrlPrefix="http://localhost:8080/cas" serverName="http://localhost:8000/sd" ticketValidatorName="CAS20" singleSignOut="true" serviceTicketManager="CacheServiceTicketManager" redirectAfterValidation="true" /> <system.web> <machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/> <compilation debug="true"> </compilation> <authentication mode="Forms"> <forms loginUrl="http://localhost:8080/cas/login" timeout="30" defaultUrl="~/index.aspx" cookieless="UseCookies" slidingExpiration="true"/> </authentication> <authorization> <deny users="?" /> </authorization> <httpModules> <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/> </httpModules> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules> <remove name="DotNetCasClient"/> <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/> </modules> </system.webServer> </configuration>
访问时,会跳转到统一login页面,但是登录后,返回后,就开始无限跳转,即recirect loop,
搜了N久,
http://jasig.275507.n4.nabble.com/CAS-NET-Client-Redirect-Loop-and-Attributes-td4661112.html
这个貌似有些帮助。
就是把singleSignOut改成false, 把serviceTicketManager="CacheServiceTicketManager" 去掉, 不过貌似第一次没问题,第二次还是死循环。 =============================================================== 后来发现,tomcat控制台CentralAuthenticationServiceImpl.java抛了个异常,
就进去看了看,晕~~
原来,是因为我改了服务端的CentralAuthenticationServiceImpl.java,
子系统验证ticket时,我在服务端检查了当前用户是否有权限,没权限我就扔出个TicketValidationException,
参考这个:
http://www.mytju.com/classcode/news_readNews.asp?newsID=524
但之前试验是没问题的,没权限客户端会抓到异常,跳到Login页面。(客户端我也改了)
没想到,在.NET client里,这个异常会导致无限跳转呢~~奇怪~
我深究了,.net也不懂,直接在数据库里加权限,问题解决~~~~
晕死~~一直以为是.net client有问题呢,气鼓鼓的,咋搜也解决不了,
原来是自己的问题。
|