2010-11-03 64 views
3

使用cookie跟踪用户而不强制他们注册的最常见策略是什么?如何跟踪我的应用的用户而不强制他们注册?

我是否创建访客帐户,分配GUID,然后将该GUID值放入其cookie中?有没有一个更普遍接受的方法来做到这一点?

尽管这是一个普通的web应用程序问题,但我正在使用ASP.NET MVC。

+3

这听起来对我来说很合理。 – Ryan 2010-11-03 04:56:34

回答

2

正如你所写,一个流行的解决方案是将GUID发送给cookie内的用户。 显然这个解决方案只在用户启用cookies的情况下才起作用。

请注意,收到cookie的用户完全可以读取cookie的内容。

此外,会话是存储临时数据的好地方。 它的持续时间取决于你的网站的配置,如果需要,稍微的工作,它是非常耐用,可以对服务器的内存影响很小(db中的会话)

0

cookie中的guid是一个这样做的方式。

如果用户没有启用cookie,我想你可以通过另一种方式来创建小哈希(比如bit.ly,j.mp等)并将它们插入到url中。你的所有路由都会被这个散列填充(在请求开始时创建,或者如果已经有一个,则从url中获取)。

它不完全是最干净的方法,但它绕过了用户没有启用cookie并将一个非常小的字符串插入到url的情况。

例如http://example.com/fG3Er/Home/Indexhttp://example.com/Home/Index?guestId=fG3Er其中fG3Er是唯一的访客ID。

或者,您可以将它作为查询字符串追加到每个网址的末尾。无论哪种方式,我绝对支持基于guid的方法,如果用户不想在您的网站上使用cookie,您可以随时向他们解释他们的经历将会受到损害。您可以始终通过创建一个测试用户来找出您的用户中有多少用户禁用了Cookie,并将其与实际点击次数进行比较(除非Google Analytics(分析)有确定启用Cookie的方式 - 不确定)。

+1

但是,插入字符串到URL的方法可能会破坏SEO或缓存。 – 2010-11-04 13:42:05

+0

好点!然而,这两者都可以被克服。使用查询字符串应该有所帮助。但我同意他们应该考虑。 :) – 2010-11-04 14:11:45

相关问题