使用cookie来唯一标识用户

时间:2012-07-20 17:17:40

标签: c# asp.net c#-4.0 webforms

我正在创建一个asp.net网站,我想实现一个几乎准确的点击计数器。据我所知,基于SessionStart的在线解决方案不是很准确,所以我想也许我可以在用户机器上放一个cookie,并在每个SessionStart上检查该cookie是否存在,如果它存在则不计算该请求,否则加一个Cache [“hits”]并在目标机器上创建一个新的命中cookie。可以这样做吗?

public void Session_Start(object sender, EventArgs e)
{
    HttpCookie cookie = Request.Cookies.Get("hitCookie");
    if(cookie == null)
    {
        object hitsObj = Cache["hits"];
        if(hitsObj != null)
        {
            int hits = Convert.ToInt32(hitsObj);
            Cache["hits"] = hits + 1;
            cookie = new HttpCookie("hitCookie");
            Response.Cookies.Add(cookie);
        }
    }
}

如果你认为可能会在用户计算机上禁用cookie,那么请记住,asp.net会员资格也不会默认工作。

更新:Cookie比计算访问者的其他方法更可靠,而不是您网站的会员,是的,您可以删除它们,我想这样做可以两次计算用户。至少我不算任何开始新会话的机器人或爬虫。

0 个答案:

没有答案