Jak zalogować strumień wejściowy żądania za pomocą HttpModule, a następnie zresetować pozycję InputStream
Próbuję rejestrować zawartość żądania http, korzystając z modułu IHttpModule w następujący sposób:
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)
}
}
Problem polega na tym, że po przeczytaniu strumienia wejściowego na koniec strumień wejściowy wydaje się zniknąć lub bardziej prawdopodobny, kursor znajduje się na końcu strumienia.
próbowałemrequest.InputStream.Position = 0;
irequest.InputStream.Seek(0, SeekOrigin.Begin);
ale nie działa.