Las solicitudes POST fallan cuando <sessionState cookieless = "AutoDetect" /> está configurado

Considere el siguiente caso:

Un servidor web está ejecutando una aplicación .NET con<sessionState cookieless="AutoDetect" />.Un cliente le está enviando datos mediante un simpleHttpWebRequest (no galletas).

Este caso aparentemente simple causa una falla importante.

Como .NET no puede determinar si el agente solicitante (HttpWebRequest) admite cookies, responde a la solicitud POST con un redireccionamiento 302 encontrado a la misma ubicación con:

una cookie llamadaAspxAutoDetectCookie en la respuestaun parámetro de consulta llamadoAspxAutoDetectCookie en la ubicación reenviada

Se supone que el agente solicitante debe solicitar la nueva ubicación, queHttpWebRequest hace. Cuando .NET veAspxAutoDetectCookie en la cadena de consulta, sabe que se trata de una nueva solicitud, y puede determinar si las cookies son compatibles al ver si una cookie llamadaAspxAutoDetectCookie está en los encabezados de solicitud.

El problema es que la mayoría de los agentes solicitantes (navegadores web,HttpWebRequest) trate un 302 Encontrado como si fuera un 303 Vea Otro y haga que la nueva solicitud sea GET, ¡independientemente del método HTTP original! Los datos enviados en la solicitud POST inicial no se reenvían.

La respuesta correcta debe ser un redireccionamiento temporal 307, que no cambia el método de solicitud. (Una solicitud POST a la ubicación X redirige a unENVIAR solicitud de ubicación Y.)

¿Hay alguna forma de cambiar este comportamiento en .NET para que las solicitudes POST no se destruyan?

Información sobre la redirección 3xx

Respuestas a la pregunta(4)

Su respuesta a la pregunta