Windows Identity Foundation示例MVC应用程序

时间:2010-04-29 20:20:25

标签: .net asp.net-mvc authentication wif

是否有使用WIF和ASP.NET MVC应用程序的示例应用程序?有人可以帮我开始尝试整合这两种技术吗?

4 个答案:

答案 0 :(得分:23)

我发现到目前为止最好的例子是Dominick Baiers StarterSTS。

即使您不将其用作STS,网站上的教程也是一个很好的起点。没有专门的ASP.NET MVC教程,但我的工作方式与ASP.NET WebForms的工作方式相同。

所以简而言之......

  1. 下载WIF和WIF SDK - http://msdn.microsoft.com/en-us/evalcenter/dd440951.aspx
  2. 下载StarterSTS - http://startersts.codeplex.com/
  3. 关注STS介绍视频 - https://identity.thinktecture.com/download/startersts/v1/StarterSTS_InitialSetup.wmv
  4. 遵循ASP.NET教程 http://identity.thinktecture.com/download/starterSTS/v1/StarterSTS_FederatingWebApps.wmv
  5. 在VS 2010中创建新的MVC项目
  6. 在项目上单击鼠标右键,选择“添加STS引用”,然后按照与WebForms应用程序相同的向导步骤进行操作。 (将WIF信息添加到web.config文件中。)
  7. 现在,当您尝试登录MVC应用程序时,您将使用StarterSTS身份提供程序,它会让您登录..

    如果您调试到任何控制器方法,您现在将看到您有一个WIF“ClaimsPrincipal”(它实现了IPrincipal,因此向后兼容)

    需要注意的一点是,教程仅涉及身份验证。

    能够从MVC应用程序注销...

    添加对Microsoft.IdentityModel的引用

    (“已知”错误是它没有出现在VS2010添加引用对话框中,因此您必须直接在C:\ Program Files \ Reference Assemblies \ Microsoft \ Windows Identity Foundation \ v3.5中引用dll \ Microsoft.IdentityModel.dll)

    在模板化的MVC AccountControllers LogOff方法中,您现在可以调用...

    WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://RP/"));
    

    其中RP是您自己的基于MVC的依赖方的URI。

    完成所有这些设置后,使用其他STS(如ADFS(Active Directory联合身份验证服务))很容易。 (除了重新配置您的应用程序以使用它之外,您不需要做任何其他事情。)

    作为旁注,更多屏幕演员可以是found here

    希望这会有所帮助。这都是一个雷区: - )

答案 1 :(得分:3)

有一篇简短的高级文章应该涵盖基础知识here

对于真实的示例代码,Microsoft的Identity Developer Training Kit包含ASP.NET中的示例(以及Silverlight等)。

此外,Microsoft发布了一个冗长的PDF called "A Quick Guide to Claims-Based Identity and Access Control",这应该是一个有用的参考(第3章)。

答案 2 :(得分:2)

了解WIF如何与ASP.NET WebForms一起使用后,请查看帖子here以在ASP.NET MVC中创建自定义授权属性

答案 3 :(得分:2)

MVC + WIF的一个简单示例可以在上面提到的指南的“与多个合作伙伴联合”章节中找到。直接链接在这里:http://msdn.microsoft.com/en-us/library/ff359105(v=PandP.10).aspx

这里记录了它的工作原理:http://blogs.msdn.com/b/eugeniop/archive/2010/04/03/wif-and-mvc-how-it-works.aspx