【发布时间】:2012-10-04 10:45:41
【问题描述】:
我正在开发一种分析工具。我希望能够合理地识别独特的用户(或更可能是独特的机器)——某种程度的不准确是可以的。我需要同时支持低级设备(Android/iOS)和网络(JS/Flash),因为我在 Haxe 中构建客户端。 (另一个需要注意的是,我不能使用特定于语言的 API。)
之前,我使用(ip, mac address) 的元组来唯一标识用户。但是,在 Flash(和 Javascript)中,您无权访问 mac 地址。我突然想到我应该在服务器端存储和管理身份,也许使用 GUID。客户端会向服务器请求一个 GUID(或某种 ID),并将其用于来自同一设备的任何后续请求。
但是,我不确定 GUID 是否是个好主意。或者我是否应该用 IP 或其他信息来补充它。 (我确实有权从客户端获取 IP。)
客户端的工作流程是:
- 检查存储的唯一标识符
- 如果存在,将其与所有请求一起发送
- 如果没有,请调用以请求唯一标识符并存储它
- 在所有后续调用中发送唯一标识符
当然,这只会在每个设备上都是唯一的,并且可能有一些方法可以通过删除本地设备上的标识符来误报两个用户。
在服务器端,它就像生成一个新的 GUID 并在用户请求唯一标识符时将其发送给用户一样简单。
这是一个好方法吗?有更好的方法吗?
【问题讨论】:
标签: asp.net-mvc-3