Windows Identity Foundation示例MVC应用程序

Dot*_*ude 17 .net authentication asp.net-mvc wif

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

Chr*_*isV 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文件中.)

现在,当您尝试登录MVC应用程序时,您将使用StarterSTS身份提供程序,它将登录您.

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

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

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

添加对Microsoft.IdentityModel的引用

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

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

WSFederationAuthenticationModule.FederatedSignOut(null, new Uri("https://RP/"));
Run Code Online (Sandbox Code Playgroud)

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

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

作为旁注,可以在这里找到更多的屏幕演员.

希望这可以帮助.这都是一个雷区:-)