Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每台计算机的唯一闪存ID_Javascript_Actionscript 3_Flash_Facebook Apps_Hardware Id - Fatal编程技术网

Javascript 每台计算机的唯一闪存ID

Javascript 每台计算机的唯一闪存ID,javascript,actionscript-3,flash,facebook-apps,hardware-id,Javascript,Actionscript 3,Flash,Facebook Apps,Hardware Id,我用AdobeFlashProfessional创建了一个在线多人纸牌游戏。在这个游戏中,不允许多个客户端/帐户,因此我需要检测用户是否从不同的设备加入游戏。我不能简单地在服务器端检查IP地址,因为我仍然希望同一办公室的人能够一起玩 我找到了一些解决方案,比如读取MAC地址,但问题是NetworkInfo.NetworkInfo.findInterfaces只能在AdobeAIR上工作,这不是我的情况 另一种解决方案可能是使用浏览器cookie,但这种解决方案的问题是,用户可以在同一台计算机上使

我用AdobeFlashProfessional创建了一个在线多人纸牌游戏。在这个游戏中,不允许多个客户端/帐户,因此我需要检测用户是否从不同的设备加入游戏。我不能简单地在服务器端检查IP地址,因为我仍然希望同一办公室的人能够一起玩

我找到了一些解决方案,比如读取MAC地址,但问题是NetworkInfo.NetworkInfo.findInterfaces只能在AdobeAIR上工作,这不是我的情况

另一种解决方案可能是使用浏览器cookie,但这种解决方案的问题是,用户可以在同一台计算机上使用Chrome和Firefox等浏览器cookie

由于这是一个网络游戏,使用js也可能是一个解决方案,所以我将这个问题标记为js

更新


在这种情况下,使用SharedObject不起作用,因为google chrome使用自己的存储


如果您有任何建议,我们将不胜感激。

您可以使用flash Cookie来代替浏览器Cookie-。它非常简单,具有类似于浏览器cookie的机制,但存储在flash本地存储中

更新

例如:

var mySo:SharedObject = SharedObject.getLocal("host"); // get saved SO with name "host" if exists or create new if doesn't exist
mySo.data = {someProperty: "someData"}; // writing some data
var flushResult:Object = mySo.flush(); // saving data in local storage
...
var savedSO:SharedObject = SharedObject.getLocal("host");
trace(savedSO.data.someProperty); // output: someData

下面是一个使用SharedObject flash player cookie等价物的示例:在这种情况下,使用SharedObject不起作用,因为google chrome使用自己的存储。使用openId/OAUTH,然后使用google/facebook/twitter按钮登录,然后将提供商id存储在数据库中,作为跟踪用户的手段。实际上,这是一个facebook应用,但问题是,客户端可以创建多个Facebook帐户,这就是我们想要防止作弊的原因。没有可靠的方法使用web技术跟踪设备。主要是通过设计例如MAC地址。即使使用Chrome和metro IE,Flash共享对象仍然可能是您的最佳选择。谢谢您的回答,但我担心Flash本地存储与Google Chrome不同。您可以在此链接上看到示例:republicocfcode.com/tutorials/flash/as3sharedobject尝试在chrome中移动对象,并使用其他浏览器重新加载页面。