.NET桌面应用程序的单点登录(Google,Yahoo,Facebook ......)

Dan*_*lba 6 .net c# login single-sign-on

我需要在我的应用程序中提供登录机制.我想为最常见的IP提供登录,例如Google,Yahoo!,Facebook,微软直播等.

我的应用程序是一个用C#编写的桌面应用程序,因此不是 Web应用程序.

  • 你知道我可以用来实现这个目的的任何库或框架吗?
  • 我必须为每个提供商实施登录机制吗?

注意:我知道Microsoft 在Azure中提供了一种独特的登录机制,但我对此Azure服务不感兴趣.

Bin*_*x1n 1

OpenAuth可以满足您的需要,但使用起来可能很复杂。不过,有大量资源可以帮助您。这里是一篇描述使用 OAuth 过程的文章的链接,这里有一个很好的 SO 答案,其中包含您可以用来入门的代码示例。

您需要注册您想要用于登录的服务并接收它们的密钥。引用自链接文章:

  1. 向您为其开发应用程序的服务注册您的应用程序。例如 Twitter、Twitpic、SoundCloud 等。您将收到消费者密钥和秘密。
  2. 然后,您(应用程序的开发人员)通过传递消费者密钥和消费者秘密来启动 OAuth 流程
  3. 该服务将向您返回一个请求令牌。
  4. 然后,用户需要批准应用程序运行请求。
  5. 用户授予权限后,您需要将请求令牌交换为访问令牌。
  6. 现在您已收到访问令牌,您可以使用它来使用您的凭据和访问令牌对所有 http 请求进行签名。

尽管您需要每个提供商提供的密钥,但身份验证方法是相同的,因此您实际上不需要实现特定于每个服务提供商的单独登录代码。