c# – 如何为应用程序实现OAuth?
我正在为需要执行以下操作的客户端创建一个应用程序:
>允许用户使用Google,Facebook,Twitter和LinkedIn进行身份验证. 哪里有最好的地方开始学习这个?有没有一个标准,每个人都用这些东西在.NET中?我一直在搜索几个小时,而似乎大多数人指向DotNetOpenAuth,似乎找不到任何有关如何使用图书馆的固体教程.下载附带样品,但仍然让我感到困惑. 我认为这样简单: >配置提供者的秘密. 但是,似乎每个提供者都拥有自己的一套代码,它们都是如此的不同,令人困惑. Facebook有一些图形对象,twitter有一些我不明白的“InMemoryTokenManager”,Google甚至没有一个身份验证示例,只有一个Google通讯录示例.最重要的是,由于某些原因,您必须将示例中的某些ApplicationBlock演示文稿中的一些代码复制到自己的应用程序中,并且无需知道它正在尝试做什么就可以编译,而且是一个艰巨的任务. 我觉得我失去了所有这些基本的东西. 在这一点上,即使是一本书推荐也是很棒的. 我相信我理解OAuth的高层次概念,但一旦我试图深入挖掘,我马上迷路了. 解决方法
首先,如果您使用的是网络4.5,那么使用外部库的确没有任何意义,默认的asp.net模板附带了大多数提及的提供者的验证码.
其次,如果你仍然需要一个关于oauth2身份验证的一些细节的教程,请看Ben Foster http://ben.onfabrik.com/posts/oauth-providers这个伟大的帖子 第三,不幸的是,如果您需要任何其他的身份验证,则没有一个协议.因此,每个提供者都有自己的方式暴露这些附加数据 – 联系人,帖子等.你不能做太多的事情,它与oauth2无关,但只是一种方式来调用一个特定的api,这是偶然的基于oauth2认证暴露为rest / xml Web服务.这意味着如果您仅进行身份验证,则每个提供程序的协议大致相同.更多的是具体的. 第四,我会坚持提供者返回的电子邮件地址,而不是内部的ID.并非所有提供商都支持该ID,而所有的提供商都可以返回用户电子邮件.您可以信赖这些信息,因为提供商在通过oauth2返回之前验证电子邮件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |