我真的非常喜欢{。3}},一个用于.Net的OpenId,OAuth库,但它确实不会为我剪掉它。
首先,它似乎不适用于单声道(示例因web.config错误或其他错误而失败)
其次,我不需要库的99%的功能,我想要的只是一些简单的事情来处理我的OpenId / OAuth 客户端使用复杂性。我不需要编写OpenId服务器 - 我只是希望我的用户点击“使用Google登录”按钮: - )
我想要做的就是有一组按钮让用户登录我的网站(任何一个都很好,全部三个奖金):
是否有任何简单,可用的替代方案可以为我提供以下内容:
HttpContext.Current.User
答案 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分支仍然无法使用:(
答案 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服务器。
答案 5 :(得分:1)
不完全是DotNetOpenAuth的替代品,但我相信它可能对您有所帮助。 要解决类似的问题 - 我只需要简单的登录OpenID屏幕 - 我找到了openid-selector。他们有几个非常简单的例子(可以使用jQuery,MooTools和原型库)如何设置类似于堆栈溢出的登录页面。