2013-03-07 92 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請求。

雖然你將需要從每個供應商的一個關鍵,驗證的方法是一樣的,所以你實際上並不需要落實具體到每一個服務提供商的代碼分離的跡象。