Foros del Web » Programando para Internet » ASP Clásico »

valor accesible para todas las sessiones

Estas en el tema de valor accesible para todas las sessiones en el foro de ASP Clásico en Foros del Web. Wenasss Estoy desarrollando una aplicación que en un momento dado, tiene que generar un identificador único de transacción, he decidido basarme en la fecha (año, ...
  #1 (permalink)  
Antiguo 09/01/2007, 06:04
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
valor accesible para todas las sessiones

Wenasss
Estoy desarrollando una aplicación que en un momento dado, tiene que generar un identificador único de transacción, he decidido basarme en la fecha (año, dia, horas , minutos y segundos).
Aplicando las leyes de Murphy, seguro que dos usuarios van ha clickar en el mismo segundo... así que necesito un contador que esté continuamente funcionando y sea accesible desde cada sesión de usuario, con ese valor añadido al generado por la fecha ya tengo un id único muy fiable.
Mi intención es no tener que usar una bd porque sería una chapuza..

Que ámbito de variable tengo que usar??

GRACIAS
  #2 (permalink)  
Antiguo 09/01/2007, 07:57
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: valor accesible para todas las sessiones

Tal y como lo veo yo, sería mas fácil y muy seguro montrar un script que cree códigos aleatoríos e insertarlo en la sesión.
  #3 (permalink)  
Antiguo 09/01/2007, 08:27
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Re: valor accesible para todas las sessiones

Gracias por responder ^^
Aleatorio no puede ser, porque por muy remota que sea la posibilidad de que coincidan... puede ocurrir, de todas formas es lo de menos, lo que pregunto, es que ambito de variable he de usar.

Una variable de sesion solo es accesible para cada sesion.. supongo que el objeto aplication me puede solucionar la papeleta, pero no lo he usado nunca y no se que inconvenientes puede tener (si es que los tiene) o hay que tomar alguna medida en concreto.
Le hechare un vistazo
  #4 (permalink)  
Antiguo 09/01/2007, 08:49
 
Fecha de Ingreso: agosto-2004
Mensajes: 131
Antigüedad: 19 años, 10 meses
Puntos: 2
Re: valor accesible para todas las sessiones

Hola,

Es una identificador de transacción por usuario?, o cada usuario puede tener muchos identificadores?, si es el primer caso seria mejor usar el session_id de cada usuario, lo otro que puedes hacer es utilizar el objecto application.

saludos,

Rodrigo
  #5 (permalink)  
Antiguo 09/01/2007, 09:20
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: valor accesible para todas las sessiones

De hecho se llama exactamente Session.SessionID
  #6 (permalink)  
Antiguo 10/01/2007, 01:35
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Re: valor accesible para todas las sessiones

Es para una pasarela de pago seguro, las especificaciones marcan que tiene que ser un id de 12 posiciones con lo que he comentado de la fecha y dos dígitos más que lo hagan único. Por eso pensé en un contador común para todos que, cada vez que un usuario lo use al hacer el pago, se bloquee, coja el valor, lo incremente y lo desbloquee, de esta forma no puede darse un duplicado, sería imposible.
He mirado el objeto Application y es idoneo para lo que quiero hacer ^^
Lo del sessionID también lo pensé, pero como no se a ciencia cierta que me va a generar dos dígitos únicos entre todas las sessiones... he optado por el application.
Este es, a groso modo, el código que tengo pensado, haber si llego a esa fase del proyecto y puedo probarlo al 100%

<%
Application.Lock
Session("misDosDigitos") = Application("contador")
if Application("contador") = "99" then
Application("contador") = "00"
else
Application("contador") = Application("contador") + 1
end if
Application.Unlock
%>

Esa es la idea, seguramente alguna cosa más tendré que hacerle pero con eso se entiende.
  #7 (permalink)  
Antiguo 10/01/2007, 02:24
Avatar de Kamarada_Malkav  
Fecha de Ingreso: octubre-2005
Ubicación: Madrid
Mensajes: 70
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: valor accesible para todas las sessiones

Hola a todos, hacia mucho que no escribia por aqui asi que me voy a animar un poco:

Subotai como dice Myakire con el Session.SessionID optienes una id única para cada usuario, y si eso lo unes con tu sistema de fecha y hora optienes un sistema totalmente seguro, porque el mismo usuario no va a hacer click a la vez en el mismo segundo, y aun así eso lo puedes controlar desactivando el botón (o lo que sea donde tiene que hacer click el usuario) una vez presionado.

Espero que te sirva de ayuda.

Saludos.

Edito: Lo siento no me habia fijado bien en lo de los dos dígitos. Olvida todo esto que he escrito.

Última edición por Kamarada_Malkav; 10/01/2007 a las 02:26 Razón: Por no leer bien
  #8 (permalink)  
Antiguo 10/01/2007, 02:37
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Re: valor accesible para todas las sessiones

Por favor, recuerdame que me olvide de que lo he leido

=)

Naa no pasa na gracias por aportar

Saludos Kamarada
  #9 (permalink)  
Antiguo 10/01/2007, 09:16
Avatar de Subotai  
Fecha de Ingreso: mayo-2003
Ubicación: Irúnforge
Mensajes: 198
Antigüedad: 21 años, 1 mes
Puntos: 1
Re: valor accesible para todas las sessiones

Wenas de nuevo..
Resulta que he usado el objeto application y funciona perfectamente, pero, como siempre hay peros.. mi archivo global.asa no está funcionando correctamente... no destruye el objeto application al cerrarse la sesion (incluso cerrando todos los navegadores que tengo abiertos...)
os dejo el código por si veis algo mal (no tengo mucha costumbre de usar el global.asa)
Por supuesto que es un solo archivo que se llama global.asa que está en la raiz del sitio...

<script language="vbscript" runat="server">
Sub Application_onStart
application("contador") = 0
end sub

Sub application_onEnd
application.Contents.Remove("contador")
end sub
</script>


tambien he probado con removeall y tampoco se elimina, se mantiene.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:20.