什么是最好的OAuth2 C#库?

77

似乎很多应用程序提供商都使用OAuth2来允许API访问,比如Twitter和Facebook。有没有人使用通用的库来处理OAuth2,以便在所有应用程序中使用?


58
投票关闭让我感到困惑。现在针对特定任务询问图书馆推荐被认为是“主观和争议性”的吗?请帮我理清楚。 - Joel Mueller
25
有些人认为,“最好的”和“最差的”这类概念完全没有客观性,但我不知道他们为什么要这样想。他们认为“绿色是最好的颜色!”和“在这些条件下哪个图书馆是最好的?”是一样的。 - colithium
还有基于Katana的Microsoft实现,https://www.nuget.org/packages/Microsoft.Owin.Security.OAuth - Fernando Gonzalez Sanchez
我认为所有的SO版主都有一个内部政策,关闭“推荐”问题,因为他们担心因“内容贫乏”而受到谷歌惩罚。 - Alex from Jitbit
4个回答

27

我没有深入研究它的内部结构(源代码链接已经失效),但总体上来说,DotNetOpenAuth似乎非常专业。

更新:现在也支持OAuth2和OpenID。


4
现在(2013年2月),DotNetOpenAuth支持OAuth2和OpenID。 - Grzegorz Gierlik
@GrzegorzGierlik 谢谢您的更新。由于人们很少阅读评论,所以我已经放了一个更新,而不是您的修改。 - Eugene Mayevski 'Callback
据我所知,它不能用于商业项目。我从NuGet安装了这个库,并被询问了有关Microsoft库(Microsoft.Bcl.dll和其他两个库)的许可证问题。这是许可证 https://www.microsoft.com/net/dotnet_library_license.htm ,其中写着“您不得将该软件用于商业软件托管服务。”如果我理解有误,请纠正我。 - white.zaz
@white.zaz 我不是那个库的开发者,所以我只能猜测。主页上写着“个人和商业项目完全免费使用”。我认为最好的方法是联系库的作者并明确询问。 - Eugene Mayevski 'Callback
2
我强烈不建议使用DNOA。几乎没有关于如何使用该库的文档,因此每当您遇到任何问题时,肯定会自己解决。如果您尝试访问的Web服务具有包括OAuth实现的.NET SDK,则选择该SDK。作为一条个人建议,我付出了很高的代价,不要选择DNOA,否则准备好独自阅读代码度过不眠之夜! - GETah
显示剩余4条评论

22

您应该查看OAuth2。它是OAuth 1.0和OAuth 2.0协议的.NET实现,适用于大多数流行的提供商:

  • 谷歌
  • Facebook
  • 推特
  • 四方
  • Instagram
  • 领英
  • Windows Live
  • VKontakte
  • Odnoklassniki
  • Yandex
  • Mail.ru
  • Github

Nuget 包在这里


3
我们有这个库的详细工作示例吗?我可以看到一些使用示例,但我不理解AuthorizationRoot是什么。 - nraina

7

我还没有看到任何好的OAuth2框架。因此,我决定为一个项目尝试自己编写。

到目前为止,我的框架支持令牌和所有的OAuth2流程(挑战/响应、隐式、客户端凭证、资源所有者密码和刷新令牌)。

它有点笨重,我正在开发基于该框架的第一个REST服务。

请查看它,欢迎提供任何反馈或贡献。

https://github.com/ghorsey/SharpOAuth2


1

我会看一下Hammock REST客户端库。它是一个通用的REST客户端,但也提供OAuth支持。


1
Hammock REST不支持oAuth2。只支持oAuth 1.0a。 - cecilphillip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接