Ayuda para leer JSON de HttpContext.InputStream

He creado un HttpModule para capturar solicitudes con fines de auditoría.

Para las solicitudes de Ajax a un método web, me gustaría registrar también los datos JSON asociados con la solicitud.

Por ejemplo, solicitud

POST /MyPage.aspx/AddRecord HTTP / 1.1
x-request-with: XMLHttpRequest
Aceptar-Idioma: en-gb
Referente:http: // fiddlerlocal: 5000 / AddRecord.aspx
Aceptar: application / json, text / javascript,/
Tipo de contenido: application / json; charset = utf-8
CPU UA: x86
Aceptar-codificación: gzip, desinflar
User-Agent: Mozilla / 4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5. 30729)
Anfitrión: fiddlerlocal: 5000
Longitud del contenido: 287
Conexión: Keep-Alive
Pragma: sin caché
Galleta: .....
{"id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "fecha": "8-6-2010"}

He intentado una variedad de métodos para leer el JSON ({"id": "282aa3b5-b55f-431c-916e-60433fdb61c0", "date": "8-6-2010"}) desde el HttpContext.InputStream.

Ejemplo 1:

Lector StreamReader = nuevo StreamReader (request.InputStream);
cadena encodedString = reader.ReadToEnd ();- ReadToEnd devuelve una cadena vacía

Ejemplo 2

utilizando (MemoryStream ms = new MemoryStream ())
{
byte [] buffer = nuevo byte [request.ContentLength];
request.InputStream.Read (buffer, 0, request.ContentLength);
ms.Write (buffer, 0, request.ContentLength);- La matriz de bytes contiene el número correcto de bytes pero cada byte tiene un valor de 0 - ¿codificado de alguna manera?
devuelve Convert.ToBase64String (ms.ToArray ());- no hace nada
return Encoding.UTF8.GetString (ms.ToArray ());- no hace nada
}

¿Cómo puedo extraer con éxito los datos de HttpContext.InputStream?

Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta