使用Jasig的中央身份验证服务(CAS)和ASP.NET MVC 4/5

ASP*_*ice 7 c# asp.net-mvc cas asp.net-mvc-4 asp.net-mvc-5

我在VS 2013中启动了一个ASP.NET MVC 5项目,最终需要支持CAS(中央身份验证服务)进行身份验证.Jasig有一个官方的.NET客户端,但它有点陈旧,似乎是在MVC 3天内创建的.

有没有人有经验将这项技术与新的MVC 4或5相结合?我特别关注的是,MVC 5现在使用OWIN身份验证来代替旧的Forms身份验证,这就是CAS与ASP的关系.

我想让这个项目从右脚开始,以便在以后添加CAS时,我不会争先恐后地重新创建代码的主要部分.我更喜欢在VS 2013的MVC 5中这样做,但VS 2012中的MVC 4也是一种选择.

e:我意识到我并没有真正"问过问题",因为他更喜欢.它归结为:我可以将CAS与MVC 5一起使用,我会遇到什么限制,以及将它集成到我的项目中需要哪些特殊的解决方法(如果有的话)?

sco*_*732 2

当前版本的 CAS 客户端仍可在 MVC 5 中工作,但不幸的是,您无法利用任何依赖于基于声明的身份验证的内容。这意味着您使用“文件-新建项目”时安装的一些软件包需要删除,并且您需要恢复到旧的表单身份验证模块方法。此外,自 .NET 4.0 起,FormsAuthenticationModule 被

我发现当前版本的 CAS 客户端与 OWIN 存在 2 个问题

  1. 客户端使用名为 CasPrincipal 的自定义 IPrincipal 类。看起来应该对其进行修改以利用 ClaimsPrincipal。这项工作非常重要,并且会破坏与 .NET 2.0/3.5 的兼容性。它将解决一个长期存在的问题,即如何处理 CAS 服务器提供的角色/组成员信息。
  2. 更长期的问题是,随着 OWIN 开始在 ASP.NET 中发挥更大的作用,对 System.Web 的依赖将成为一个问题。我还没有仔细研究如何解决这个问题,但它可能必须是一个单独的客户端包。破坏 2.0/3.5 兼容性是一回事,但破坏与所有不支持 OWIN 的应用程序的兼容性则是另一回事。

我希望在接下来的几周内留出一些时间让客户利用 ClaimsPrincipal 并看看我们可以从哪里开始。