7

我正在 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:我意识到我并没有像 SO 喜欢的那样真正“提出问题”。归结为:我可以将 CAS 与 MVC 5 一起使用,我会遇到哪些限制,以及将它集成到我的项目中需要哪些特殊的解决方法(如果有的话)?

4

1 回答 1

2

当前版本的 CAS 客户端仍然可以在 MVC 5 中工作,但不幸的是,您无法利用任何依赖于基于声明的身份验证的东西。这意味着在您使用 File-New Project 时安装的一些软件包需要被删除,并且您需要恢复到旧的 Forms Authentication Module 方法。此外,从 .NET 4.0 开始,FormsAuthenticationModule 是

我在当前版本的 CAS 客户端中看到了 2 个关于 OWIN 的问题

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

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

于 2014-02-25T05:37:32.710 回答