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.

questionAnswers(6)

yourAnswerToTheQuestion