我写了一个Android应用程序,它使用Azure来执行谷歌,Twitter和Facebook的用户登录;它使用Microsoft.WindowsAzure.MobileServices.Android.dll
,我可以做这样的事情
await Client.LoginAsync(context, MobileServiceAuthenticationProvider.Google);
(在Azure中我设置了使用Google,Facebook和Twitter的ID和秘密)。
现在我正在使用 Windows 7 , VS2012 和 Framework 4.5 开发Windows应用(桌面应用),我想要执行相同的登录(所以我可以获取身份验证令牌并使用它来查询我的sql数据库);我使用NuGet导入Microsoft.WindowsAzure.Mobile
包,我看到引用了 Microsoft.WindowsAzure.Mobile 和 Microsoft.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)
但我并不诚实地需要它...... 我错过了什么吗?
答案 0 :(得分:5)
除了完整的.NET Framework 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上的帖子与此完全相同,并且有一些代码显示了如何做到这一点。