2013-03-07 163 views
6

我需要在我的应用程序中提供登录机制。我想为最常见的IP提供登录,例如GoogleYahoo!,Facebook,Microsoft Live等。.NET桌面应用程序(Google,Yahoo,Facebook ...)的单点登录

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

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

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

在此先感谢。

+0

你想使用开放认证?这里有一个框架的答案:http://stackoverflow.com/questions/11591460/dotnetopenauth-and-c-sharp-desktop-application – BinaryTox1n 2013-03-07 16:12:26

+0

我的问题是,如果有任何框架或库已经实现它,是的我假设该库应该使用OpenAuth。 – 2013-03-07 16:29:33

回答

1

OpenAuth将做你所需要的,但它可以使用很复杂。不过,有大量的资源可以帮助你。 Here是描述使用OAuth的过程的文章的链接,并且有一个出色的SO回答Here,其中包含可用于开始使用的代码示例。

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

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

虽然你将需要从每个供应商的一个关键,验证的方法是一样的,所以你实际上并不需要落实具体到每一个服务提供商的代码分离的迹象。