我需要在我的应用程序中提供登录机制。我想为最常见的IP提供登录,例如Google,Yahoo!,Facebook,Microsoft Live等。
我的应用程序是一个用C#编写的桌面应用程序,因此不是Web应用程序。
注意:我知道Microsoft在Azure中提供了unique sign-on mechanism,但我对此Azure服务不感兴趣。
OpenAuth将满足您的需求,但使用起来可能很复杂。但是,有很多资源可以帮助你。 Here是一篇描述使用OAuth过程的文章的链接,并且有一个很好的SO答案Here,其中包含您可以用来开始的代码示例。
您需要注册您希望用于登录的服务并为其接收密钥。引用链接文章:
- 使用您正在开发的服务注册您的应用程序。例如Twitter,Twitpic,SoundCloud等您将收到一个消费者密钥和秘密。
- 然后,您应用程序的开发人员通过传递使用者密钥和使用者密钥来启动OAuth流程
- 该服务将向您返回请求令牌。
- 然后,用户需要批准应用程序运行请求。
- 用户授予权限后,您需要交换请求令牌以获取访问令牌。
- 现在您已收到访问令牌,您可以使用此令牌使用您的凭据和访问令牌对所有http请求进行签名。
虽然您需要来自每个提供商的密钥,但验证方法是相同的,因此您实际上不需要对每个服务提供商特定的代码实施单独的登录。