Jer*_*xon 19 windows-8 windows-runtime
是否有任何机制可以唯一地识别设备(即使它是匿名的)?
需要说明的是,"设备"是指计算机/平板电脑.
Windows 8.x.
string HardwareId()
{
var token = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);
var bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
return BitConverter.ToString(bytes);
}
Run Code Online (Sandbox Code Playgroud)
Windows 10
您必须添加Mobile和/或Desktop扩展SDK.
string HardwareId()
{
var token = HardwareIdentification.GetPackageSpecificToken(null);
var hardwareId = token.Id;
var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(hardwareId);
var bytes = new byte[hardwareId.Length];
dataReader.ReadBytes(bytes);
return BitConverter.ToString(bytes);
}
Run Code Online (Sandbox Code Playgroud)
小智 19
Windows 8 RTM中刚刚添加了这样的功能:
Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null)
Run Code Online (Sandbox Code Playgroud)
对于Windows 8中的Metro风格应用程序来说,似乎没有一种方便的方法来获取系统维护的唯一标识符,例如随其提供的Windows Phone 7 Microsoft.Phone.Info.DeviceExtendedProperties.GetValue( "DeviceUniqueId" )
到目前为止,我发现的最佳解决方案是在应用程序本地存储中生成一个新的guid,并使用该标识符来识别计算机,以便当前和将来启动应用程序.
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
Object value = localSettings.Values["uniqueDeviceId"];
if (!value)
{
value = Guid.NewGuid();
localSettings.Values["uniqueDeviceId"] = value;
}
Run Code Online (Sandbox Code Playgroud)
请记住,用户可能会删除本地存储并导致您的应用忘记并重新生成该值(或者甚至可能修改/欺骗该值),因此出于任何关键安全目的,请不要依赖它.由于我只使用这种技术进行粗略的统计和使用报告,这对我的需求来说很好.
小智 5
这可以用作登录用户的一致ID吗?
EasClientDeviceInformation.Id | id属性
返回本地计算机的标识符.Id属性表示使用从MachineID,用户SID和App ID的SHA256哈希的前16个字节截断的GUID的DeviceId,其中MachineID使用本地用户组的SID.GUID的每个组件都以网络字节顺序返回.
| 归档时间: |
|
| 查看次数: |
6595 次 |
| 最近记录: |