问题描述:

web项目应用cas作为单点登录站点,登录后无法打开WEB项目的页面,报错,说重定向次数过多。

老实说,这种问题,以前遇到过不少,是我这种半桶水程序员的噩梦。解决这种问题,不管如何比较配置、调试WEB项目,都不好使,都属于盲猜,狗咬乌龟,无处下牙;最好的办法是调试cas客户端。在这里,WEB项目是客户端站点,它依赖于cas的客户端DotNetCasClient.dll。

怎么调试这个DotNetCasClient.dll呢?

1、首先,要有DotNetCasClient.dll的源代码。没有就下载一个
https://github.com/apereo/dotnet-cas-client

2、然后用Visual Studio打开这个下载的项目,编译,生成

3、WEB项目引用这个生成的dll。
注意不是拷贝dll到web项目的bin下,而是直接引用DotNetCasClient生成的dll

4、Visual Studio打开的DotNetCasClient环境中,调试-附加进程,选相关的w3wp.exe(假设我们用IIS承载web项目),那么在浏览器中访问web项目,登录,返回,即可调试DotNetCasClient。

之前,遇到重定向问题,是web.config里使用了代理;后来是WEB项目为http,而CAS为https;现在这个呢,调试之下,才发现是web项目在/global.asax中不知道哪个大聪明写了一些拦截代码,导致登录后无法正常访问。