Can I uniquely identify a device in Windows 10/Windows 8/WinRT

前端 未结 3 925
有刺的猬
有刺的猬 2021-02-01 20:12

Is there any mechanism to identify a device uniquely (even if it is anonymous)?

To be clear, by \"device\" I mean the computer/slate/pc.

Windows 8.x

3条回答
  •  耶瑟儿~
    2021-02-01 20:30

    There doesn't seem to be a convenient way for Metro Style apps in Windows 8 to obtain a system-maintained unique identifier, like Windows Phone 7 provided with its Microsoft.Phone.Info.DeviceExtendedProperties.GetValue( "DeviceUniqueId" )

    • http://social.msdn.microsoft.com/Forums/en-HK/winappswithcsharp/thread/62ac2a48-be60-465c-b3b7-bbb736a67a60
    • http://social.msdn.microsoft.com/Forums/en-NZ/winappswithcsharp/thread/2ca0d5de-9db5-4349-839c-e01ff614ec6e

    The best solution I've found so far is to simply generate a new guid in application local storage and use that identifier to identify the computer for the current and future launches of your app.

    var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
    Object value = localSettings.Values["uniqueDeviceId"];
    if (!value)
    {
        value = Guid.NewGuid();
        localSettings.Values["uniqueDeviceId"] = value;
    }
    

    Keep in mind that the user could delete the local storage and cause your app to forget and regenerate that value (or potentially even modify/spoof the value), so don't depend on it for any critical security purposes. Since I'm only using this technique for rough statistics and usage reporting, this is fine for my needs.

提交回复
热议问题