La Web del Programador: Comunidad de Programadores
 
    Pregunta:  59845 - NECESITO SABER CUANTOS CLIENTES ESTAN ACCESANDO MI WEB SITE
Autor:  Enrique Bautista
Tengo una aplicacion hecha en asp.net que pide a los clientes insertar su numero de cliente y password para poder accesar al site; como podria salvar o saber exactamente la cantidad de personas que me estan visitando ??; mi conocimientyo de asp.net es casi nulo.

muchisimas gracias !!!

  Respuesta:  Hugo Aristizábal Rodríguez
Hay varias maneras. La clásica es utilizar lo que en ASP.NET se denominan "variables de aplicación". Lo que se hace en ese caso es tener una variable global a toda la aplicación, que se incrementa en 1 cada vez que desde un anvegador se crea una sesió en tu sitio.

Para eso, en el archivo Global.asax de tu sitio Web (si no tienes uno, lo agregas al proyecto), ubicas el evento Application_Start, y declaras una valiable de aplicación que inicie en 0:

Application["visitas"] = 0;

El evento Application_Start se ejecuta una sola vez, una vez la aplicación (tu sitio) arranca en el servidor, por lo que es el lugar ideal para inicializar nuestro contador.

Luego, en el evento Session_Start de ese mismo archivo, aumentas en 1 la variable de aplicación qe inicializamos en el paso anterior:

int visitas = (int)Application["visitas"];
visitas++;
Application["visitas"] = visitas;

El evento Session_Start se ejecuta cada vez que un navegador se conecta a nuestro sitio, por lo que ahí incrementamos en uno nuestro contador.

Eso es todo. Cada vez que se cree una sesión en tu sitio, la variable de aplicación "visitas" se incrementará en 1. Para consultarlo, solamente pon el contenido de la variable en cualquier control, algo así:

Label1.Text = Application["visitas"].ToString();

El método anterior tiene un problema. Si tu servidor web se reinicia, o si modificas tu archivo Web.config, la aplicación comon tal se reinicia,y tu contador vuelve a cero. La solución ideal sería utilizar algún tipo de almacenamiento para ir guardando las visitas, de forma tal que el contador no se pierda. En este link puede encontrar un artícuo (en inglés) de cómo se hace:

http://www.xdevsoftware.com/blog/post/Hit-Counter-for-ASPNET.aspx

Me contás cómo te va, y si te puedo ayudar en algo más.