这是一个非常经典的ASP.NET MVC 与 DotNetCasClient 集成的场景。你遇到的问题核心在于:DotNetCasClient 的CasAuthenticationModule是在Application_AuthenticateRequest阶段自动运行的,它会直接拦截请求并处理票据,而不是让你在CasController里手动去“拿”票据。
因此,你之前写的CasController逻辑需要调整。我们需要利用Global.asax中的事件来捕获 CAS 登录成功的瞬间,建立本地 Forms 认证,然后重定向回业务页面。
以下是基于你提供的配置(.NET 4.5, MVC 2-4 风格)整理的完整、可直接使用的代码方案。
第一步:全局配置 (Global.asax.cs)
这是最关键的一步。我们需要订阅DotNetCasClient的Authenticate事件,当 CAS 验证成功后,手动写入本地 Cookie。
文件路径:Global.asax.cs
注意:确保using DotNetCasClient;存在。