2013-08-23 21 views
2

我寫了一個使用天青與谷歌,Twitter和Facebook進行用戶登錄Android應用程序;它採用Microsoft.WindowsAzure.MobileServices.Android.dll以及與此我能夠做這樣的事情LoginAsync失蹤

await Client.LoginAsync(context, MobileServiceAuthenticationProvider.Google); 

(Azure中我設置的ID和祕密使用谷歌,Facebook和Twitter)。

現在我正在開發一個Windows應用程序使用的Windows 7(桌面應用程序),VS2012框架4.5,我想執行相同的登錄信息(這樣我可以得到驗證令牌,並用它來查詢我的SQL數據庫);我用的NuGet導入Microsoft.WindowsAzure.Mobile包,我看到同時參照Microsoft.WindowsAzure.MobileMicrosoft.WindowsAzure.Mobile.Ext

當我嘗試使用LoginAsync,我在Android中使用的類似的語法缺失。
根據這個鏈接http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/work-with-net-client-library/#caching在擴展包中應該有一個擴展的方法,讓我用

user = await client.LoginAsync(MobileServiceAuthenticationProvider.Google); 

但VS不能看到它,所以我不能使用它。
我剛纔看到的方法

LoginAsync(MobileServiceAuthenticationProvider provider, JsonObject token) 

,但我並不需要它老老實實...
我缺少的東西?

回答

5

「簡化」,或「基於瀏覽器的」登錄方法可以在所有支持的平臺上,除了完整的.NET框架4.5。該平臺缺乏該功能,因爲有些情況下無法顯示用戶可以輸入憑據的Web界面。例如,它可以用在後端服務中(請參閱this post上的示例)。它也可以是一個控制檯應用程序,其中沒有「本地」方式來顯示網頁。即使在具有「本機」UI組件的項目類型(如WinForms或WPF)中,也沒有「自然」方式顯示登錄頁面 - 如果窗口是基於WPF的,在WinForms應用程序中顯得不自然, -versa。

對於一個特定的平臺,但是,你可以添加方法擴展方法。在http://blogs.msdn.com/b/carlosfigueira/archive/2013/08/27/web-based-login-on-wpf-projects-for-azure-mobile-services.aspx這篇文章正好說明了這一點,並且它有一些代碼顯示瞭如何做到這一點。

+0

謝謝卡洛斯,萬分感謝。明天我會檢查你的鏈接並嘗試你的解決方案。謝謝! – Marco