Pregunta

Es posible que ASP.NET mezclar hasta que el usuario está asociado con qué variable de sesión en el servidor?Son las variables de sesión inmutablemente ligada a la original del usuario que los ha creado a través del tiempo, espacio y dimensión?

¿Fue útil?

Solución

Para responder a tu pregunta original:Las sesiones se introduce un id que se coloca en una cookie.Este id se genera utilizando algunos de números aleatorios crypto rutinas.No se garantiza el ser único pero es muy improbable que nunca se duplicará en el lapso de la vida de una sesión.Incluso si tus sesiones de ejecutar por completo días de trabajo.Probablemente tomaría años para un sitio popular para generar un duplicado de la llave (No estadísticas o de los hechos para que una copia de seguridad).

Habiendo dicho todo eso no parece que su problema es con los valores de sesión se mezclen.La primera cosa que me gustaría empezar a mirar es la agrupación de conexiones.ADO piscinas de conexiones por defecto, pero si usted solicita una conexión con un nombre de usuario/contraseña que no está en la piscina se debe dar una nueva conexión.Pista de que puede ser un cuello de botella de rendimiento en el futuro si su sitio es muy grande.Ha sido un tiempo desde que he trabajado con SQL Server, Oracle no es una llamada que se puede hacer para cambiar la identidad del usuario.Me sorprendería si no hay un equivalente en SQL Server.Usted puede tratar de conectar a la bd con un genérico de nombre de usuario/contraseña y, a continuación, la ejecución de esa identidad interruptor de llamar antes de entregar de nuevo la conexión con el resto de su código.

Otros consejos

Depende de tu sesión de proveedor, si tiene anulada la sesión de generación de claves en una manera que no es único, a continuación, varios usuarios pueden tener acceso al mismo período de sesiones.

Qué comportamiento está usted viendo?Y está usted seguro de que no hay estática en jugar con las variables de las que están hablando?

mientras que cualquier cosa es posible....

No, a menos que se almacenar el estado de sesión en sql server o algunos otros de los proceso de almacenamiento y, a continuación, jugar con él...

La sesión está enlazado a una cookie de usuario, las posibilidades de que jugar en un escenario normal es muy raro, sin embargo puede haber problemas si se utiliza distribuido el estado de la sesión.

No es posible.Las sesiones están ligados al creador.

¿Quieres hacer una mezcla, o ¿tiene usted un caso, cuando parece que, mezclado?

Más información:

Tengo una aplicación que toma el id de usuario/contraseña de la página de inicio de sesión y la almacena en una variable de sesión.Yo plop en mi cadena de conexión para la realización de llamadas a SQL Server.

Cuando una tabla se actualiza, estamos usando 'system_user' en la base de datos para identificar a la " última actualización por parte de usuario.Estamos viendo algunas de comportamiento extraño en el que el usuario nos está esperando para ser listados es incorrecta, y muestra a alguien más.

Puede aparecer en el depurador y ver si el valor correcto es de hecho está transmitiendo que la cadena de conexión?Podría ayudarle rápidamente a idenfity lado que el problema está en.

También asegúrese de que ninguno de el código de conexión tiene propiedades estáticas para la conexión o por el usuario o un usuario puede tener su conexión sustituye con el usuario más reciente antes de la actualización dispara.

Mi conjetura es que usted está re-uso de un campo estático en una clase para mantener la cadena de conexión.Los campos estáticos son re-utilizados en múltiples las solicitudes de IIS así que probablemente sólo ver la más reciente sesión del usuario en la 'última actualización por'.

BTW, a menos que tenga una MUY buena razón para hacerlo, entonces no debería ser la conexión a la DB como este.Estás en la prevención de uso de agrupación de conexiones que va a perjudicar el rendimiento en condiciones de alta carga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top