7

Mi sitio permite usuarios anónimos. Vi que bajo una carga pesada los usuarios anónimos obtienen a veces valores de perfil de otros usuarios.Diferentes usuarios obtienen el mismo valor de cookie en .ASPXANONYMOUS

Primero borro mis cookies y obtengo un valor único válido en el valor de la cookie .ASPXANONYMOUS. Después de un par de solicitudes, recibo un nuevo valor para .ASPXANONYMOUS que ya está siendo utilizado por otro usuario. Veo en mis registros que siempre hay un par de usuarios que comparten el mismo valor en .ASPXANONYMOUS.

Puedo ver en mis registros que 2 o más usuarios realmente obtienen el mismo cookievalue para .ASPXANONYMOUS, incluso si tienen IP diferente.

Aquí está el tráfico de htttp. En la segunda imagen se muestra la cookie cambiando (Usted tiene que mostrar la imagen a tamaño completo no ser capaz de leer el registro):

Una de las muchas peticiones que funcionan bien:

alt text http://img413.imageshack.us/img413/2711/log1.gif

Además, hay que ésta petición que cambia la cookie alt text http://img704.imageshack.us/img704/8175/log2.gif

A continuación, la nueva cookie se utiliza

alt text http://img704.imageshack.us/img704/3818/log3.gif

sólo para estar seguro Quité la inyección de dependencias. No uso OutputCaching.

Mi web.config tiene esta configuración para la autenticación:

<anonymousIdentification enabled="true" cookieless="UseCookies" cookieName=".ASPXANONYMOUS" 
     cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" /> 

    <authentication mode="Forms"> 
     <forms loginUrl="~/de/Account/Login" /> 
    </authentication> 

¿Alguien tiene una idea de lo más que pudiera registrar o lo que debería echar un vistazo a?

ACTUALIZACIÓN

vi ahora que el tráfico HTTP he mostrado es perfectamente válido. Un valor cambiante en .ASPXANONYMOUS es algo que ocurre porque la cookie se actualiza. El valor contiene AnonymousID y una marca de tiempo.

Esto no da lugar a que los usuarios tengan el mismo valor en .ASPXANONYMOUS en condiciones normales.

El problema en realidad es que siempre que los cokies se configuran desde el AnonymousIdentificationModule, entonces hay una posibilidad de que un par de usuarios obtengan esta cookie. Establecer una cookie en mi aplicación no tiene este extraño efecto lateral.

+0

lo tanto, si una determinada solicitud se Borking las cookies, tal vez alguna fuente relevante de esa solicitud ayuden a localizar el problema ? –

+1

Todavía no estoy seguro si el problema es realmente una solicitud en particular. Tengo la impresión de que un par de instancias de controlador usan el mismo HttpContext en algún momento. Todavía no podía reproducir el error en el escenario y el desarrollo, incluso si puse mucho tráfico en él, por eso puedo dar tan poco detalle aquí. –

+0

¿Alguna suerte en este caso? –

Respuesta

1

¿Está declarando alguna variable estática en su código? Tuve este problema similar, y lo reduje a eso; al menos para mi situación.

+0

¡Suena interesante! En este momento no veo cómo esto podría aplicarse a mi código. Solo tengo privado estático de solo lectura ILog _log = LogManager.GetLogger (typeof (HomeController)); Y no entro en la única acción que toco en este momento. ¡Pero esa es una buena ventaja de todos modos! –

+0

¿Ha mirado esta otra pregunta aquí http://stackoverflow.com/questions/513782?tab=oldest#tab-top Tal vez algo aquí puede ayudar? – TheGeekYouNeed

3

Tuve el mismo problema y la solución fue desactivar el almacenamiento en caché de resultados para las respuestas donde llama a SetCookie.A continuación se presentan varios enlaces que describen este

+0

El primer enlace es muy interesante. No tengo habilitado el almacenamiento en caché de resultados pero sigo creyendo que puedo usar algunos de los consejos en el artículo. –

+0

¿Sigue siendo cierto? – dariol

Cuestiones relacionadas