Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有更好的替代DotNetOpenAuth的方法?_C#_Oauth_Openid - Fatal编程技术网

C# 有没有更好的替代DotNetOpenAuth的方法?

C# 有没有更好的替代DotNetOpenAuth的方法?,c#,oauth,openid,C#,Oauth,Openid,我真的很想喜欢.Net的OpenId、OAuth库,但它对我来说真的不合适。 首先,它在mono上似乎不起作用(示例因web.config错误或其他错误而失败)。 其次,我不需要库中99%的特性,我只需要一些简单的东西,来解决OpenId/OAuth客户端使用的复杂性。我不需要编写OpenId服务器——我只想让我的用户点击“使用谷歌登录”按钮:-) 我想做的就是有一组按钮,让用户登录我的网站(任何一个都很好,三个都有好处): Facebook(不支持OAuth,所以不太可能) 推特 谷歌 是

我真的很想喜欢.Net的OpenId、OAuth库,但它对我来说真的不合适。
首先,它在mono上似乎不起作用(示例因web.config错误或其他错误而失败)。
其次,我不需要库中99%的特性,我只需要一些简单的东西,来解决OpenId/OAuth客户端使用的复杂性。我不需要编写OpenId服务器——我只想让我的用户点击“使用谷歌登录”按钮:-)

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

  • Facebook(不支持OAuth,所以不太可能)
  • 推特
  • 谷歌
是否有任何简单、可用的替代方案可以为我提供以下信息:

  • 要放入页面的插入式代码段或组件
  • 理想情况下,它只需设置
    HttpContext.Current.User
  • 与会员资格的集成基本上是使用会员资格来跟踪以前在站点上的用户

  • 不完全是DotNetOpenAuth的替代品,尽管我相信它可能会对您有所帮助。
    为了解决类似的问题-我只需要简单的登录OpenID屏幕-我发现。他们有几个非常简单的例子(可以使用jQuery、MooTools和原型库)如何设置类似于stackoverflow的登录页面

    一年前,我修补了DNOA的实际mono2分支。它确实很旧,但它可以工作(尽管只尝试了OpenID部分),我仍然在一些项目中使用它。不知道当前的mono2分支仍然无法使用:(

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

    DotNetOpenAuth有几个mono分支可以工作,过去也有过。你可能会发现它们不是在Linux中的mono下构建的,但是这些分支在Windows中构建时会生成一个DotNetOpenAuth.dll,应该可以在Linux下运行。但是我已经有一段时间没有自己做过了,所以我帮不了你多少忙

    Mono没有表现出修复bug和填补DotNetOpenAuth在移植到Mono时遇到的功能漏洞的愿望,因此这些Mono分支非常古老

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

    是的,DotNetOpenAuth支持的场景比您需要的要多。但是大多数库不都支持吗?请看一看


    并向mono开发人员发出通知,要求他们修复缺陷并填补mono中的功能漏洞,以便DotNetOpenAuth在mono上运行得更好。我已经多次向他们提出要求,但我想他们需要听到更多开发人员提出要求。

    在开发我自己的提供商时,我尝试了大约5个不同的库,然后选择了DotNetOpenAuth和it really给出了最好的结果。OpenID的一个问题是,由于实现的多样性,RPs和IP有时会有相当大的通信困难。我第一次尝试使用不同的库时,OpenID只在我测试它的站点中的大约50%起作用。DotNetOpenAuth在大约90%起作用。我期望类似的结果在依赖方测试时,性能与此类似。不过,您可以研究的另一种选择是Janrain的RPX,它也是高质量的。

    我发现自己也处于同样的情况。其他平台(如Python)的OAuth库更简单、更优雅,并且似乎在OAuth中封装了许多复杂性,因此从客户机的角度来看,它只是几行代码(这是设计良好的库IMHO的标志)


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

    Identity Server(IdSrv)

    用于ASP.NET核心的OpenID Connect和OAuth 2.0框架

    资料来源:

    观看这个介绍视频

    微软AspNet.Security.OpenIdConnect.Server(ASOS)

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

    资料来源:

    OpenIddict

    OpenIddict旨在为用户提供一个简单易用的解决方案 在任何ASP.NET核心应用程序中实现OpenID Connect服务器


    资料来源:

    我怀疑你是否会找到一个“简单的”回答这个问题,不管你最终得到什么,它都将是一个相当复杂API的包装器。警告一句:Facebook OpenId,因此任何支持上面列出的三个提供商的解决方案都不会是微不足道的。你是否尝试过DNOA的mono分支:@szt不幸的是,它甚至没有编译,因为事实上它具有特定于windows的特性副部长…:-(@Skilwz:对不起,我的错。一年前我修补了实际的分支,并在几个项目中使用了它:但这是一个非常古老的分支……对于阅读本文并考虑开放ID的人来说,至少是这样。墙上写着使用开放ID连接,这让人困惑,它是建立在OAuth2之上,而不是开放ID之上。我认为你应该从容不迫地接受批评。这里没有任何基本的例子。所有东西都使用oauth行话。库需要为mono实现变通方法。把它带回家并改进库:-)除此之外,这不是我问题的答案…;-)我并没有对你的批评感到生气。但是StackOverflow并不是一个批评的论坛,你的问题已经半途而废了,在你发了很多咆哮之后,这些咆哮可能会通过电子邮件发送给