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

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

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

【问题讨论】:

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

标签: windows-phone-8 parse-platform background-agents


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多