37

是否有任何推荐资源用于实施使用 oAuth 的自定义成员资格提供程序?目标是让用户使用他们现有的 oAuth 凭据登录到我的 ASP.NET MVC 应用程序。用户通过身份验证后,我想利用内置的 ASP.NET 授权功能。

谢谢。

4

4 回答 4

46

我不确定您要查找的是 OAuth。

OAuth 用于通过使用令牌来委派授权。根据您在做什么,您有两种情况:

  1. 您的应用程序想要使用由提供商(例如 twitter 或 google)托管的一些用户数据。在这种情况下,您的应用程序将成为消费者 - 简而言之,用户需要登录并同意授权您的应用程序访问他们在提供程序上的数据,并且您将获得一个可以使用的访问令牌以访问那些受保护的资源。
  2. 或者,您有一个应用程序,用户登录等那些服务。

有关 OAuth 的更多信息,请查看OAuth.Net 网站。目前有 3 种可用于 .Net 的 OAuth 实现。

由于 OAuth 的工作方式,我真的无法想象您如何拥有“OAuth”成员资格提供程序 - 它确实旨在保护 API,并且通常目标是在更精细的级别委派授权,即授予消费者应用程序访问权限只是一个用户地址簿数据,而不让他们访问电子邮件档案、他们的日历等——这不适合基于成员/角色的安全模型。

我猜你真正要找的是 OpenId,即你用 Stackoverflow 本身验证自己的方式。我建议在这里阅读 Stackoverflow OpenId 案例研究,并且可能是 .Net 的最佳 OpenId 实现目前是DotNetOpenAuth项目的一部分(这被正式称为 DotNetOpenId,该项目的谷歌代码站点在这里)。

于 2009-08-06T11:36:09.897 回答
6

我想您可能正在寻找DotNetOpenAuth。我没有使用它,所以我不能确定它是否包括会员提供程序,但我希望它确实如此。如果没有,它是开源的,所以无论如何都应该帮助你做你想做的事情。

于 2009-07-30T20:43:25.383 回答
2

你应该看看https://github.com/rustd/ASPNETTemplates它有 asp.net 的默认项目模板,它演示了使用 OAUth 登录然后扩展通用提供程序(webforms 模板,但你可以对 mvc 做同样的事情)做角色等

于 2012-09-05T13:47:44.807 回答
1

自从你发布这个问题以来,图书馆已经走过了漫长的道路......我已经开始使用这个图书馆进行 Oauth - 它已经实现了 Facebook、Twitter、PayPal 和 Google+ 集成:

OAuth2 社交登录 - Facebook、Google、Twitter、PayPal - ASP.NET MVC C# 开源库

此外,如果向后兼容性对您来说不是问题,Microsoft 已经开始支持流行的 OAuth 提供程序......请参阅这篇文章:

Microsoft OAuth2 OWIN/Katana 与 Facebook 和 Google+ 的集成

于 2015-07-11T04:09:12.943 回答