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

问题描述 投票:6回答:1

我需要在我的应用程序中提供登录机制。我想为最常见的IP提供登录,例如Google,Yahoo!,Facebook,Microsoft Live等。

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

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

注意:我知道Microsoft在Azure中提供了unique sign-on mechanism,但我对此Azure服务不感兴趣。

c# .net login single-sign-on
1个回答
1
投票

OpenAuth将满足您的需求,但使用起来可能很复杂。但是,有很多资源可以帮助你。 Here是一篇描述使用OAuth过程的文章的链接,并且有一个很好的SO答案Here,其中包含您可以用来开始的代码示例。

您需要注册您希望用于登录的服务并为其接收密钥。引用链接文章:

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

虽然您需要来自每个提供商的密钥,但验证方法是相同的,因此您实际上不需要对每个服务提供商特定的代码实施单独的登录。

© www.soinside.com 2019 - 2024. All rights reserved.