C# 检查是否有人第一次访问asp.net网站?

C# 检查是否有人第一次访问asp.net网站?,c#,asp.net,C#,Asp.net,您好,我正在创建一个基本计数器,每当有人访问该网站时,它会添加+1。问题是,每次有人访问站点上的另一个页面时,而不是第一次访问站点时,都会添加1,这使得数据非常不准确(例如,访问站点的一个用户可能会访问8个不同的页面,因此在计数器中添加8个,插入1)。是否有一种方法可以检测用户在首次加载时访问站点 我正在C#中使用asp.net 3.5。设置cookie。检查cookie,如果它存在,则不要增加计数 如果要求用户登录,您可以计算他们登录的次数。尝试使用Global.asax.cs中的Sessio

您好,我正在创建一个基本计数器,每当有人访问该网站时,它会添加+1。问题是,每次有人访问站点上的另一个页面时,而不是第一次访问站点时,都会添加1,这使得数据非常不准确(例如,访问站点的一个用户可能会访问8个不同的页面,因此在计数器中添加8个,插入1)。是否有一种方法可以检测用户在首次加载时访问站点


我正在C#中使用asp.net 3.5。

设置cookie。检查cookie,如果它存在,则不要增加计数


如果要求用户登录,您可以计算他们登录的次数。

尝试使用Global.asax.cs中的Session\u Start事件

    protected void Session_Start(object sender, EventArgs e)
    {
          //Increment your counter here

    }
这将为每个用户添加一个计数器,当他们第一次访问您的站点上的页面时。然后,一旦浏览器会话超时(默认情况下,站点处于不活动状态的时间为20分钟),下次浏览器会话访问您的站点时,将出现另一个增量。超时时间是可配置的

如果你想让他们第一次访问你的网站,那么其他一些海报中提到的cookie方法可以做到这一点。但请记住,你无法知道它是否是同一个用户,只是同一台电脑——想想网吧

编辑:以下是您对匿名用户的评论: 您的授权设置是什么?e、 g

<!-- Allow access to anonymous (unauthenticated) users. -->
<authorization>
  //probably shouldn't do this in particular, but you might want to look at your settings
  <allow users="*" /> 
</authorization>

//可能不应该特别这样做,但您可能需要查看您的设置

存储所有访问者的IP地址,但只存储唯一的IP地址。

您不希望仅按IP地址登录,因为防火墙后面的任何人都将显示为相同的IP地址

我想在这里吃饼干是最好的选择。当用户第一次访问您的站点时,设置cookie。对于之后的任何请求,只有当cookie不存在时才增加计数器。使用Session_Start会给您类似的行为,但是Session cookie过期可能会导致您多次跟踪同一个人



如果您能详细说明计数器的用途,它将有助于确定正确的解决方案。

使用。非常全面的用户跟踪,免费(一定程度上)

对。不要禁用会话。默认情况下它是启用的,所以这是不禁用它的一个很好的理由。@Chuck,会话是一个服务器端概念,您所说的“如果会话被禁用”是什么意思?@rochal@Chuck是正确的。无法禁用会话以使我的解决方案正常工作。大概忠诚的企鹅想要服务器端的数据?!!只在客户端的cookie中使用它没有多大意义。我并不建议在客户端的cookie中存储count。我的意思是,如果用户访问该页面时没有会话cookie,则该用户当前没有浏览该站点。会话cookie的存在告诉站点,用户当前正在浏览该站点,而不是增加计数。@Chuck,要使其工作,会话不能被禁用,在这种情况下,不需要cookie。这一切都可以在会话启动事件中完成。该站点不需要存在cookie来告诉它用户没有浏览该站点。Session_Start事件告诉他们,无需编写一行cookie访问代码,结果将不准确。路由器可以在一个IP地址后面屏蔽n个用户。是的,但是这里没有什么是100%准确的,除非你让用户用他们的名字登录。。。或者更好的护照号码,因为名字不是唯一的。这仍然是一个常见的解决方案。你能澄清一下吗?你想统计每次新用户访问你的网站的次数吗?如果他们在第二天当前会话超时时回来怎么办?您是否再次计算它们?是的,在这种情况下,它是为了确定站点被访问的次数,即使是同一个人在新会话中。会话开始事件听起来非常有利。会话开始工作正常,只是在有人登录时增加了计数器。是否可以统计未经身份验证的用户?对于已验证和未经身份验证的用户,都应触发会话启动事件。您的身份验证模式是什么?此外,如果第二个用户在同一台计算机上访问您的站点,例如在网吧中,他们将不会被统计,因为cookie仍然存在。@James-true,但是现在谁会关掉他们的饼干呢?大多数现代网站都依赖cookies。@Daniel-如果您使用会话cookies,则不会。一旦用户离开网站或浏览器关闭,它们就会过期。如果您使用的是会话cookie,则无法关闭会话,您还可以根据我的回答在会话启动事件(这就是它的用途)的服务器端执行所有操作。在这种情况下,没有必要使用cookie。如果第二个用户在同一台计算机上访问该网站,比如在网吧中,他们将不会被计算在内,因为cookie仍然存在。问题表明,他们希望在每次有人访问网站时增加计数器“+1”(我的caps)。在本例中,会话正是required@Daniel-如果他们使用会话cookie,则不能使用。@Chuck,要使其工作,会话不能被禁用,在这种情况下,不需要cookie。这一切都可以在会话启动事件中完成。该站点不需要存在cookie来告诉它用户没有浏览该站点。Session_Start事件告诉他们,不必编写一行cookie访问代码。我同意你的观点,我只是认为最初的问题并不完全清楚。如果我不得不猜测的话,我会认为会话最终是忠诚企鹅想要的,但是有一些场景(如你提到的)可能会使cookie、会话或IP不太理想。没错,企鹅需要澄清,饼干怪物需要安静一会儿,是吗,Chuck?