【发布时间】:2010-11-15 14:14:26
【问题描述】:
是否有任何推荐资源用于实施使用 oAuth 的自定义成员资格提供程序?目标是让用户使用他们现有的 oAuth 凭据登录到我的 ASP.NET MVC 应用程序。用户通过身份验证后,我想利用内置的 ASP.NET 授权功能。
谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc openid oauth
是否有任何推荐资源用于实施使用 oAuth 的自定义成员资格提供程序?目标是让用户使用他们现有的 oAuth 凭据登录到我的 ASP.NET MVC 应用程序。用户通过身份验证后,我想利用内置的 ASP.NET 授权功能。
谢谢。
【问题讨论】:
标签: asp.net asp.net-mvc openid oauth
自从你发布这个问题以来,图书馆已经走过了漫长的道路......我已经开始使用这个库来进行 Oauth - 它已经实现了 Facebook、Twitter、PayPal 和 Google+ 的集成:
OAuth2 Social Logins - Facebook, Google, Twitter, PayPal - ASP.NET MVC C# open source library
此外,如果向后兼容性对您来说不是问题,Microsoft 已开始支持流行的 OAuth 提供程序...请参阅这篇文章:
Microsoft OAuth2 OWIN/Katana integration with Facebook and Google+
【讨论】:
我不确定您要查找的是 OAuth。
OAuth 用于通过使用令牌来委派授权。根据您的操作,您有两种情况:
有关 OAuth 的更多信息 - 请查看 OAuth.Net website。目前有 3 种可用于 .Net 的 OAuth 实现。
由于 OAuth 的工作方式,我真的无法想象您如何拥有“OAuth”成员资格提供程序 - 它的真正目的是保护 API,并且通常目标是在更细粒度的级别委派授权,即提供消费者应用程序仅访问用户地址簿数据,而不允许他们访问电子邮件存档、他们的日历等 - 这不适合基于成员/角色的安全模型。
我猜您真正需要的是 OpenId,即您使用 Stackoverflow 本身验证自己的方式。我建议阅读 Stackoverflow OpenId case study here 并且可能是 .Net 的最佳 OpenId 实现目前是 DotNetOpenAuth 项目的一部分(正式名称为 DotNetOpenId,项目 is here 的谷歌代码站点)。
【讨论】:
你应该看看https://github.com/rustd/ASPNETTemplates,它有 asp.net 的默认项目模板,它演示了使用 OAUth 登录,然后扩展通用提供程序(webforms 模板,但你可以对 mvc 做同样的事情)来做角色等
【讨论】:
我想你可能正在寻找DotNetOpenAuth。我没有使用过它,所以我不能确定它是否包含会员提供程序,但我希望它会包含。如果没有,它是开源的,所以无论如何都应该帮助你做你想做的事情。
【讨论】: