【发布时间】:2011-02-13 23:50:34
【问题描述】:
是否有将 WIF 与 ASP.NET MVC 应用程序结合使用的示例应用程序?有人可以帮助我开始尝试集成这两种技术吗?
【问题讨论】:
标签: .net asp.net-mvc authentication wif
是否有将 WIF 与 ASP.NET MVC 应用程序结合使用的示例应用程序?有人可以帮助我开始尝试集成这两种技术吗?
【问题讨论】:
标签: .net asp.net-mvc authentication wif
我发现到目前为止,最好的入门示例是 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。
完成所有这些设置后,使用 ADFS(Active Directory 联合服务)等其他 STS 就很容易了。 (因为除了重新配置应用来使用它之外,您无需执行任何操作。)
作为旁注,更多的屏幕投射可以是found here。
希望这会有所帮助。这有点像雷区:-)
【讨论】:
有一篇简短的高级文章应该涵盖基本知识here。
对于真实的示例代码,Microsoft 的 Identity Developer Training Kit 包含 ASP.NET(以及 Silverlight 等)中的示例。
此外,Microsoft 发布了一份冗长的PDF called "A Quick Guide to Claims-Based Identity and Access Control",这应该是一个有用的参考(第 3 章)。
【讨论】:
可以在上述指南的“与多个合作伙伴联合”一章中找到 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
【讨论】:
一旦您了解了 WIF 如何与 ASP.NET WebForms 一起工作,请查看帖子here 在 ASP.NET MVC 中创建自定义授权属性
【讨论】: