问题标签 [mobileserviceclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
729 浏览

azure - 使用 Xamarin 的 Azure 移动应用程序身份验证

我阅读了这两篇文章 1.此处和 2.此处,以了解当服务器上的 API 使用基于声明的自定义授权并且调用它的 Xamarin 客户端使用MobileServiceClient框架时,对 Azure 移动应用程序执行身份验证的最佳方法。我无法最终确定这些链接中的两个示例中哪一个是更好的方法。

在第一个链接中,似乎与第二个链接中的平台特定代码没有任何依赖关系,这意味着我不需要在 Driod 或 IOS 或 Windows 项目中编写任何代码并且可以侥幸逃脱类库本身中的所有内容。(我在这里吗?)此外,第一个链接似乎不需要像第二个链接那样的任何提供程序,因为我正在调用对 Url 的直接服务调用。另一方面,第二个链接似乎只支持Facebook, Twitter, MicrosoftAccount, Google and WindowsAzureActiveDirectory. 强制MobileServiceAuthenticationProvider参数似乎没有针对基于 sql server 的用户表提供自定义身份验证。我不确定这部分,也找不到其他说明的文档。

如果LoginAsync不提供自定义身份验证,那么很明显我需要遵循该InvokeApiAsync路线。如果它确实提供了它,那么问题是:我应该像第二个链接那样在每个目标项目中编写特定于平台的(Droid/IOS/windows)代码,还是应该像在类库中那样处理所有服务调用第一个链接中显示的示例?换句话说,我应该选择LoginAsyncorInvokeApiAsync吗?这两种方法中的哪一种是推荐的方式?

0 投票
1 回答
106 浏览

facebook - 在服务器端 Azure 移动应用程序上提供“login_hint”

我正在使用 Azure MobileServiceClient 对移动应用进行身份验证。我想启用安全注销功能,这涉及删除 Web 组件创建的 cookie。否则,如果周围潜伏着未过期的 cookie,任何选择“登录”的人都会简单地登录。删除 cookie 效果很好。

不幸的是,这意味着在同一设备上返回同一提供商的用户必须再次提供他们的用户名(显然,我不想存储他们的密码)。

我发现了如何让它与谷歌一起工作。(Google OpenId 文档)我只是为 LoginAsync 方法提供了一个参数字典。该字典包含键“login_hint”和用户的电子邮件地址(顺便说一句,它必须有效才能工作)。

这似乎不适用于 Facebook、Microsoft 或 Twitter 帐户,我不知道为什么。我阅读了一份文档,上面说“login_hint”或“username”是约定支持的,但似乎都不起作用。

任何人都可以分享这方面的经验(甚至是完全不同的方法)?

TIA。

0 投票
1 回答
90 浏览

c# - 如何从 azure 移动应用程序中获取列平均值

我正在为我的 Windows 10 应用程序使用 azure 移动应用程序 .net 后端,我想从我的数据库中的表中检索列平均值。我怎样才能做到这一点?我已经搜索了互联网,找不到任何有用的东西。

我的表只有两列;id(字符串)和 Rating(int)。

0 投票
0 回答
281 浏览

json - “无法为类型填充 JSON 数组”尝试插入数据时

更新:在搞砸了一整天之后,我修复了它。我将我的mobileserviceclientURL 更改为包含 https 而不是 HTTP。我认为这导致我的帖子改为返回一个“评论”数组并试图将其解析为单个“评论”的获取请求,因此出现错误。

调试时遇到问题,我有下表/类:

使用AzureMobileServiceClient我可以将 Azure 移动应用程序中的数据获取到我的 Xamarin 应用程序中,因此从客户端返回的 JSON 必须反序列化为我的 Comment 类型,但是当我尝试使用以下代码添加数据时:

我收到错误“无法将 JSON 数组填充到类型‘评论’上”

我可以使用邮递员很好地插入数据,这在客户端肯定有问题。我看到了另一个问题,他们说他们通过删除项目并重新制作来修复它,但我宁愿弄清楚实际发生了什么。

0 投票
2 回答
338 浏览

xamarin.forms - MobileServiceClient MobileServiceInvalidOperationException 响应内容为空

我在 Xamarin Forms 应用程序中使用以下代码:

我遇到的问题是由于 500 而引发 MobileServiceInvalidOperationException。当我尝试读取响应的内容(e.Response.Content)时,它为空。当我使用 Restlet 调用相同的 API 时,我得到以下响应:

这是我期望在我的错误变量中的内容,但它为空。

我的问题是,我应该能够阅读响应的内容吗?如果是这样,我是否需要在客户端/服务器上进行更多设置?被调用的 API 使用以下方式从 webapi 返回错误:

任何帮助,将不胜感激。

0 投票
1 回答
278 浏览

authentication - Azure 应用服务身份验证 - 即使身份验证失败也提取数据

我有一个针对 Windows UWP 的 Xamarin Forms 应用程序。我已经按照 Microsoft 文档(例如本文)成功设置了离线同步和身份验证:https ://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-windows-store- dotnet-get-started-users

我还成功设置了一个后台(进程外)任务以使用 Windows 通用运行时组件运行。

流程如下: 1) 用户首次运行应用程序,他们必须登录并验证 Active Directory。然后应用程序缓存他们的令牌并注册后台任务。

2) 后台任务在 Timer 上启动。在测试期间,我没有让它刷新令牌,因为我想测试 1 小时令牌到期和刷新过程。

在我的测试中,我发现了两件我不完全理解并且我觉得很奇怪的事情(没有像我预期的那样表现)。

1)当我检查用户第一次登录时收到的令牌的到期日期时,到期日期设置为未来 30 天。我以为它应该在1小时后到期。为什么显示30天的有效期?(这并不是什么大问题,因为我确实确认它确实在一小时后停止允许访问,这只是我观察到的一个奇怪现象)。

2)这是我担心的一个。即使后台任务在 1 小时后无法进行身份验证,它仍然能够将数据从 Azure 提取到设备。由于身份验证失败,推送数据同步失败,但拉取数据同步成功。这是令人担忧的,因为我不希望未经授权的尝试能够提取数据。 有没有其他人遇到过这个?这是一个错误吗?我是否以某种方式错误地配置了身份验证?

我的设置:

Azure App Service > Easy Tables(Node.js 后端)将所有权限设置为“仅经过身份验证的访问”。

Azure 应用服务 > 设置 > 身份验证/授权 >

  • 应用服务身份验证设置为开,
  • 请求未通过身份验证时要执行的操作设置为使用 Azure Active Directory 登录,
  • 身份验证提供程序设置为为 Azure Active Directory 配置。

移动应用代码:

推送异步代码是(如预期的那样,当身份验证失败时失败):

拉异步代码,当身份验证失败但没有失败时应该失败(这是我关心的)是:

我担心即使身份验证失败,后台任务也能够从 Azure 中提取数据。我希望我在某种程度上误解了这个概念,有人可以向我解释为什么会发生这种情况?或者如果我需要配置不同的东西?我需要确保未经授权的登录无法提取数据。

后台任务尝试按顺序推送和拉取数据,我可以看到它在推送任务期间由于身份验证无效而失败,但在拉取任务期间成功。我还可以验证这一点,因为拉取任务确实从 SQL Azure DB 获取更新的数据(我可以使用独立存储资源管理器和 SQLite 浏览器查看它),但它不会将更改的数据发送到 SQL Azure DB(在 SSMS 中查看)。

0 投票
1 回答
128 浏览

azure - 我可以使用 Azure Function App url 创建 Azure MobileServiceClient 实例,而不是创建 Azure 移动应用程序吗?

我的目的是构建我的移动应用后端无服务器。现在,当我尝试创建 MobileServiceClient 实例时,它要求提供 Azure 移动应用 URI,这个 URI 可以是函数应用 URI 还是只能是移动应用?

0 投票
1 回答
179 浏览

c# - Azure MobileService 客户端 - ToListAsync 未检索所有数据

我正在使用MobileServiceClient提供的类Azure从我的Azure SQL database. ToListAsync()看来,当我使用该函数时,我只能从数据库中获取前 60 行左右。有没有解决的办法?

0 投票
1 回答
274 浏览

azure - Xamarin MobileServiceClient RefreshUserAsync 与 Google 403

我正在使用 Azure 的 MobileServiceClient sdk 对我的服务器进行身份验证。随着升级到 4.x 版本,我还使用 Xamarin.Auth 通过 Google 和 Facebook 对用户进行身份验证。当响应从谷歌返回时,我得到了一个刷新令牌。然后我像这样调用移动服务 sdk:

这项工作非常好。不起作用的是对 client.RefreshUserAsync() 的调用。每次说刷新令牌已过期或不再有效时都会抛出 403,即使我在登录后立即调用该方法也是如此。我根本没有看到很多使用 MobileServiceClient 4.x sdk 的示例,而且没有一个有如何使用刷新令牌的示例。

我也尝试在 zumo 有效负载中发送它,但它不起作用。我尝试在 Google 上使我的用户无效(我正在获取刷新令牌),尝试通过浏览器登录并转到 auth/me,但刷新令牌不存在。任何帮助都会很棒!

0 投票
0 回答
229 浏览

xamarin.forms - 在 Xamarin Forms 应用中使用从 Xamarin.Auth 接收的 Google 令牌向 Azure 应用服务后端进行身份验证

我正在尝试在我的 Xamarin Forms 应用程序中使用 Google 身份验证,方法是使用 Xamarin.Auth 执行客户端身份验证,然后将接收到的令牌传递给配置为使用 Google 身份验证的 Azure 应用服务自定义网站后端。

我从客户端上的 Xamarin.Auth 取回令牌就好了。但是,当我尝试使用 MobileServiceClient 的 LoginAsync 方法时,我得到一个异常,上面写着:

Newtonsoft.Json.JsonReaderException:解析值时遇到意外字符:<。路径 '',第 0 行,第 0 位置。

我发现了这篇文章: Xamarin MobileServiceClient RefreshUserAsync with Google 403,其中 rleffler 显然有这个工作,但我认为我不能直接向他发送消息。

这是我调用 LoginAsync 的代码: