是否有使用WIF和ASP.NET MVC应用程序的示例应用程序?有人可以帮我开始尝试整合这两种技术吗?
答案 0 :(得分:23)
我发现到目前为止最好的例子是Dominick Baiers StarterSTS。
即使您不将其用作STS,网站上的教程也是一个很好的起点。没有专门的ASP.NET MVC教程,但我的工作方式与ASP.NET WebForms的工作方式相同。
所以简而言之......
现在,当您尝试登录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