2

我编写了一个 Android 应用程序,它使用 Azure 来执行用户使用 Google、Twitter 和 Facebook 登录;它使用Microsoft.WindowsAzure.MobileServices.Android.dll并且有了这个我可以做类似的事情

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

(在 Azure 中,我设置了 ids 和 secrets 以使用 Google、Facebook 和 Twitter)。

现在我正在使用Windows 7VS2012Framework 4.5开发一个 Windows 应用程序(桌面应用程序) ,我想执行相同的登录(所以我可以获得身份验证令牌并使用它来查询我的 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)

但我真的不需要它......
我错过了什么吗?

4

1 回答 1

5

“简化”或“基于浏览器”的登录方法适用于所有受支持的平台,完整的 .NET Framework 4.5 除外。该平台缺乏该功能,因为在某些情况下它无法显示用户可以输入其凭据的 Web 界面。例如,它可以在后端服务中使用(参见本文中的示例)。它也可以是一个控制台应用程序,其中没有“本地”方式来显示网页。即使在具有“本机”UI 组件的项目类型(例如 WinForms 或 WPF)上,也没有“自然”的方式来显示登录页面 - 如果窗口是基于 WPF 的,它在 WinForms 应用程序中看起来不自然,反之亦然-反之亦然。

但是,对于特定平台,您可以将该方法添加为扩展方法。http://blogs.msdn.com/b/carlosfigueira/archive/2013/08/27/web-based-login-on-wpf-projects-for-azure-mobile-services.aspx上的帖子正是谈到了这一点,并且它有一些代码显示了如何做到这一点。

于 2013-08-27T17:01:36.073 回答