后台代理 ParseUser.CurrentUser 未缓存/不可访问 Windows Phone

Posted

技术标签:

【中文标题】后台代理 ParseUser.CurrentUser 未缓存/不可访问 Windows Phone【英文标题】:Background Agent ParseUser.CurrentUser not cached/accessible Windows Phone 【发布时间】:2014-05-20 00:42:29 【问题描述】:

我已经在我的 Windows Phone 8 应用程序中实现了一个(目前)简单的后台代理。在后台代理中,发出 WebRequest 以更新以 XML 形式存储在 IsolatedStorage 中的股票列表。在应用程序的其他部分,在调试过程中,我可以看到当前登录的用户;但是,当 BackgroundAgent 启动时,CurrentUser 为空。此时,CurrentUser不应该被缓存在应用程序中吗?它似乎为应用程序的一部分(主应用程序)缓存,但在其他部分(后台代理)中未缓存/不可接受。当前用户似乎从未在我的后台代理中设置。我愿意提供更多信息,但有人知道这是错误还是实现错误?

问题:BackgroundAgent 中的 CurrentUser 始终设置为 null。 BackgroundAgent 中的会话是否与主项目不同(这就是它从未设置的原因)?任何帮助表示赞赏。

【问题讨论】:

请出示一些代码!此外,在后台代理的每次执行之间没有任何“缓存” - 如果您希望会话或数据持续存在,那么编写该代码是您的工作!此外,后台代理和前台应用程序不共享状态! 我没有发布代码,因为我的问题更多是关于限制和应用范围。我想你可能已经回答了我的问题(后台代理和前台不共享相同的状态)。使用 Parse.com 作为我的后端,我登录了我的用户(文档说用户在会话之间缓存/保存到磁盘),这就是为什么我对 CurrentUser 始终为空的原因感到困惑。我想我的问题最好提出;如何从后台代理访问用户?存储他们的凭据似乎非常不安全。 【参考方案1】:

后台代理和前台应用程序没有直接的通信方式,因为不能保证两者会同时运行并且它们是独立的进程。

操作系统不提供用于通信的 API,因此两种首选方法是...

    使用 Web 服务将数据从前台应用同步到后台代理 Use Isolated Storage to share data between the Foreground App and Background Agent

关于凭据 - 有一些方法可用于加密 .NET 中的数据,但为了将来参考,如果您以 WP8.1(SL 或 XAML)为目标,则可以使用PasswordVault。

【讨论】:

以上是关于后台代理 ParseUser.CurrentUser 未缓存/不可访问 Windows Phone的主要内容,如果未能解决你的问题,请参考以下文章

nginx实现后台于前端代理

安装启动consul代理,consul后台管理

米菲代理后台系统开发解析

风吹雪支付系统易支付去后台验证版本代理系统

Vue模拟后台数据,proxy代理

后台代理无法使用 Windows Phone 8 不支持的 API