【问题标题】:Can an app discover its acquisition date?一个应用程序可以发现它的获取日期吗?
【发布时间】:2016-04-22 23:40:20
【问题描述】:

一个应用可以在不需要网络服务的情况下发现它的获取日期(除了 windows 商店)吗?

我需要这个才能为应用内购买创建试用版。

(这是my previous question的半跟进)

【问题讨论】:

  • 我不确定这是否可行。但也许您可以考虑将第一次运行的日期时间存储在 localsettings 的某个位置?
  • @Romasz 这就是Kory Gill 的建议,并正确得出结论"which of course is not a solution"。不过谢谢。 (隐匿性安全不是解决方案的原因是它可以被发现和规避。)
  • 是的,没错。不幸的是,我认为您无法从系统中获取任何信息。我想到的另一个想法(这次是在黑暗中拍摄)-也许您可以检查已创建/修改已安装位置(只读)中的任何文件的时间?
  • @Romasz 更好。但还是不够。任何获得许可证的人都可以卸载并重新安装该应用程序。卸载会删除所有这些文件。 (据我所知。)这就是为什么获取时间很重要,而不是安装时间。
  • 是的,对,这取消了文件方法的资格。我的想法用完了:|

标签: c# xaml windows-store-apps win-universal-app windows-store


【解决方案1】:

应用和应用内产品购买日期可在收据的 AppReceipt 和 ProductReceipt 字段中找到。 见CurrentApp.GetAppReceiptAsync

【讨论】:

  • 谢谢! MSDN 暗示我们应该验证收据的真实性。为什么?我们没有被告知要使用CurrentApp.LicenseInformation
  • 我为什么要关心?因为我要么必须花费很长时间来实现/学习本应简单的东西,要么在不理解的情况下使用MSDN's code,这是一个坏主意。你知道这里的实际问题是什么吗? (——如何利用它。)
  • 我要补充一点——这对于决定应用程序的功能没有用处,因为这种方法需要(据我所知)互联网连接。该应用也必须离线工作。
  • 验证步骤是针对服务器传递收据,而不是针对直接从 Windows 接收收据的客户端。这让服务器知道这是一张合法的收据,它应该提供购买的数据。如果您停留在最初获得收据的上下文中,则单独验证是不相关的。
  • 谢谢。这就说得通了。 (不幸的是,这似乎对试用管理没有用,因为它似乎需要在线。但很高兴知道以备将来参考。)
猜你喜欢
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多