oAuth ASP.NET成员资格提供程序

是否有推荐的资源来实现使用oAuth的自定义成员资格提供程序? 目标是让用户使用他们现有的oAuth凭证login到我的ASP.NET MVC应用程序。 用户通过身份validation后,我想利用内置的ASP.NET授权function。

谢谢。

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

OAuth是通过使用令牌来委托授权的。 根据你在做什么,你有两种情况:

  1. 您的应用程序想要使用由提供者(例如twitter或google)托pipe的一些用户数据。 在这种情况下,您的应用程序将是一个消费者 – 简而言之,用户需要login并同意授权您的应用程序访问提供者上的数据,并且您将获得一个可以使用的访问令牌获得这些受保护的资源。
  2. 或者,你有一个应用程序,用户谁拥有login等。而你想提供(即你是提供者)访问您的用户的一些受限制的信息到第三方应用程序(消费者),而无需公开您的用户凭据那些服务。

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

  • DevDefined.OAuth
  • Madgex OAuth.Net
  • DotNetOpenAuth

由于OAuth的工作原理,我无法真正想象如何拥有一个“OAuth”成员资格提供程序 – 它确实是为了保护API的目的,而且通常的目标是在更细粒度的级别委派授权,即给予用户应用程序访问只是一个用户的地址簿数据,而不让他们访问电子邮件存档,他们的日历等 – 这不符合会员/基于angular色的安全模型。

我猜你真正想要的是OpenId,也就是你用Stackoverflow本身validation自己的方式。 我build议阅读这里的Stackoverflow OpenId案例研究 ,也许最好的.Net的OpenId实现目前是DotNetOpenAuth项目的一部分(这正式称为DotNetOpenId,该项目的谷歌代码网站在这里 )。

我想你可能正在寻找DotNetOpenAuth 。 我没有使用它,所以我不能确定它是否包含成员资格提供程序,但是我期望它可以。 如果不是,它是开源的,所以应该帮助你做你想做的事情。

自从你发布这个问题以来,图书馆已经走过了漫长的道路……我已经开始为Oauth使用这个图书馆 – 它已经实施了Facebook,Twitter,PayPal和Google+整合:

OAuth2社交login – Facebook,Google,Twitter,PayPal – ASP.NET MVC C#开源库

此外,如果向后兼容性不是您的问题,Microsoft已经开始支持stream行的OAuth提供程序…请参阅此文章:

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