DotNetOpenAuth还有更好的替代品吗?

时间:2011-05-08 02:21:04

标签: c# oauth openid

我真的非常喜欢{。3}},一个用于.Net的OpenId,OAuth库,但它确实不会为我剪掉它。
首先,它似乎不适用于单声道(示例因web.config错误或其他错误而失败) 其次,我不需要库的99%的功能,我想要的只是一些简单的事情来处理我的OpenId / OAuth 客户端使用复杂性。我不需要编写OpenId服务器 - 我只是希望我的用户点击“使用Google登录”按钮: - )

我想要做的就是有一组按钮让用户登录我的网站(任何一个都很好,全部三个奖金):

  • Facebook (不支持OAuth,所以不太可能)
  • Twitter
  • 谷歌

是否有任何简单可用的替代方案可以为我提供以下内容:

  1. 要放入页面的代码段或组件的下拉列表
  2. 理想情况下,只需设置HttpContext.Current.User
  3. 即可
  4. 与会员资格整合 - 基本上使用会员资格来跟踪之前在网站上的人。

6 个答案:

答案 0 :(得分:7)

(自我承认的偏见警报:DotNetOpenAuth的作者)

DotNetOpenAuth有几个单声道分支可以工作,并且过去曾有过工作。您可能会发现他们在Linux中的单声道下没有 build ,但是在Windows中构建的那些分支会生成一个应该能够在Linux下运行的dotnetopenauth.dll。但是自从我自己做完以来已经有一段时间了,所以我无法帮助你。

Mono没有表现出很多想要修复错误并填充DotNetOpenAuth在移植到单声道时遇到的功能漏洞的愿望,所以这些单声道分支已经很老了。

我想说的是,“我所需要的只是一个简单的客户,而不是提供商”,评论似乎是危险的不明智。没有OpenID或OAuth 1.0客户端很简单。做到正确,安全,实际上是一项非常重要的工作。此外,一旦你完全支持和安全客户端(RP),添加服务器端(Provider)实际上实际上只是一个非常小的增加,因为RP和OP可以共享这么多代码。

所以是的,DotNetOpenAuth支持的场景超出了你的需要。但是大多数图书馆都没有?请查看An argument for the extra dependency of a library

并向单声道开发人员发出一条注释,要求他们修复错误并填充单声道的功能孔,以便DotNetOpenAuth在其上运行得更好。我一再问过他们,但我想他们需要听到更多的开发者要求它。

答案 1 :(得分:4)

我发现自己处于同样的境地。用于其他平台(例如Python)的OAuth库更简单,更优雅,并且似乎将OAuth中的大部分复杂性封装起来,因此从客户端的角度来看,它只是几行代码(这是精心设计的标记)图书馆,恕我直言。。

我最终选择了Hammock - 一个帮助使用其他API的库,包括OAuth 1.0A支持。

答案 2 :(得分:2)

一年前,我修补了DNOA的实际mono2分支。它确实很旧,但它确实有效(虽然只尝试过OpenID部分),我仍然将它用于一些项目。不知道当前的mono2分支仍然无法使用:(

https://github.com/sztupy/dotnetopenid

答案 3 :(得分:2)

在开发我自己的提供程序时,我在尝试使用DotNetOpenAuth之前尝试了大约5个不同的库,它确实给出了最好的结果。 OpenID的一个问题是,由于实现的多样性,RP和IP有时会有一些相当困难的通信。我第一次尝试使用不同的库导致OpenID只能在我测试的大约50%的网站上运行。 DotNetOpenAuth约占90%。从依赖方那边测试时,我期望类似的性能相似。你可以看到的另一种选择是Janrain的RPX,它也是高品质的。

答案 4 :(得分:2)

Identity Server (IdSrv)

  

适用于ASP.NET Core的OpenID Connect和OAuth 2.0 Framework

来源:https://github.com/IdentityServer

观看此简介视频https://vimeo.com/154172925

Microsoft AspNet.Security.OpenIdConnect.Server (ASOS)

  

AspNet.Security.OpenIdConnect.Server是一个高级OAuth2 / OpenID   连接ASP.NET Core 1.0的服务器框架(以前称为   作为ASP.NET 5)和OWIN / Katana,旨在提供低级别,   协议优先方法。

来源:https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server

<强> OpenIddict

  

OpenIddict旨在提供一种简单易用的解决方案   在任何ASP.NET Core应用程序中实现OpenID Connect服务器。

来源:https://github.com/openiddict/openiddict-core

答案 5 :(得分:1)

不完全是DotNetOpenAuth的替代品,但我相信它可能对您有所帮助。 要解决类似的问题 - 我只需要简单的登录OpenID屏幕 - 我找到了openid-selector。他们有几个非常简单的例子(可以使用jQuery,MooTools和原型库)如何设置类似于堆栈溢出的登录页面。