Cómo registrar el flujo de entrada de solicitud con HttpModule y luego restablecer la posición de InputStream
Estoy intentando registrar el contenido de una solicitud http, usando un IHttpModule así:
public class LoggingModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += ContextBeginRequest;
}
private void ContextBeginRequest(object sender, EventArgs e)
{
var request = ((HttpApplication)sender).Request;
string content;
using (var reader = new StreamReader(request.InputStream))
{
content = reader.ReadToEnd();
}
LogRequest(content)
}
}
El problema es que después de leer el flujo de entrada hasta el final, parece que InputStream ha desaparecido o es más probable que el cursor esté al final del flujo.
Yo he tratadorequest.InputStream.Position = 0;
yrequest.InputStream.Seek(0, SeekOrigin.Begin);
pero tampoco trabajo.