繁体   English   中英

在 windows 10 商店应用程序 c# 中获取设备的唯一 ID

[英]get unique id of the device in windows 10 store app c#

我们有一个 uwp windows 10 商店应用程序及其每台设备的许可。 当该许可证已应用于任何设备时,我们会抛出错误。 用户可以卸载该应用程序并在同一设备上再次安装,并且相同的许可证密钥可以正常工作。

但是每隔几天我注意到由以下生成的 HWID(hardwareId) 不是唯一的,当用户卸载应用程序并安装在同一设备上时,许可证密钥失败。

private static string GetId()
{
    var token = HardwareIdentification.GetPackageSpecificToken(null);
    var hardwareId = token.Id;
    var dataReader = DataReader.FromBuffer(hardwareId);

    var bytes = new byte[hardwareId.Length];
    dataReader.ReadBytes(bytes);

    return BitConverter.ToString(bytes).Replace("-", string.Empty);
}

根据我的分析,我觉得当他们的计算机重新启动时,我们的客户的 hwid 发生了变化。 尽管就硬件本身而言,没有任何改变。 所以设备名称,设备 model,操作系统对于这些用户来说一切都是一样的,只有 HWID 发生了变化。

有没有更好的方法来处理每个设备的一个许可证或唯一地生成这个 hwid? 它是否对操作系统内部版本号更改或任何其他软件或固件更新敏感?

ASHWID 提供了应用程序/包之间的强绑定,不受操作系统重新安装和应用程序版本更新的影响。 但有时也有其他原因会影响它,很难知道是哪些原因导致了ASHWID的变化。

因此,如果要获取唯一标识来区分设备,或许可以使用SystemIdentification.GetSystemIdForPublisher方法,该方法返回的标识符是特定于当前设备上的应用发布者的。 换句话说,同一发布者的所有应用程序都将获得该 ID 的相同值(对于所有用户)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM