| File: Extensions\HttpRequestRewindExtensions.cs | Web Access |
| Project: src\aspnetcore\src\Http\Http\src\Microsoft.AspNetCore.Http.csproj (Microsoft.AspNetCore.Http) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.AspNetCore.Http; /// <summary> /// Extension methods for enabling buffering in an <see cref="HttpRequest"/>. /// </summary> public static class HttpRequestRewindExtensions { /// <summary> /// Ensure the <paramref name="request"/> <see cref="HttpRequest.Body"/> can be read multiple times. Normally /// buffers request bodies in memory; writes requests larger than 30K bytes to disk. /// </summary> /// <param name="request">The <see cref="HttpRequest"/> to prepare.</param> /// <remarks> /// Temporary files for larger requests are written to the location named in the <c>ASPNETCORE_TEMP</c> /// environment variable, if any. If that environment variable is not defined, these files are written to the /// current user's temporary folder. Files are automatically deleted at the end of their associated requests. /// </remarks> public static void EnableBuffering(this HttpRequest request) { BufferingHelper.EnableRewind(request); } /// <summary> /// Ensure the <paramref name="request"/> <see cref="HttpRequest.Body"/> can be read multiple times. Normally /// buffers request bodies in memory; writes requests larger than <paramref name="bufferThreshold"/> bytes to /// disk. /// </summary> /// <param name="request">The <see cref="HttpRequest"/> to prepare.</param> /// <param name="bufferThreshold"> /// The maximum size in bytes of the in-memory <see cref="System.Buffers.ArrayPool{Byte}"/> used to buffer the /// stream. Larger request bodies are written to disk. /// </param> /// <remarks> /// Temporary files for larger requests are written to the location named in the <c>ASPNETCORE_TEMP</c> /// environment variable, if any. If that environment variable is not defined, these files are written to the /// current user's temporary folder. Files are automatically deleted at the end of their associated requests. /// </remarks> public static void EnableBuffering(this HttpRequest request, int bufferThreshold) { BufferingHelper.EnableRewind(request, bufferThreshold); } /// <summary> /// Ensure the <paramref name="request"/> <see cref="HttpRequest.Body"/> can be read multiple times. Normally /// buffers request bodies in memory; writes requests larger than 30K bytes to disk. /// </summary> /// <param name="request">The <see cref="HttpRequest"/> to prepare.</param> /// <param name="bufferLimit"> /// The maximum size in bytes of the request body. An attempt to read beyond this limit will cause an /// <see cref="System.IO.IOException"/>. /// </param> /// <remarks> /// Temporary files for larger requests are written to the location named in the <c>ASPNETCORE_TEMP</c> /// environment variable, if any. If that environment variable is not defined, these files are written to the /// current user's temporary folder. Files are automatically deleted at the end of their associated requests. /// </remarks> public static void EnableBuffering(this HttpRequest request, long bufferLimit) { BufferingHelper.EnableRewind(request, bufferLimit: bufferLimit); } /// <summary> /// Ensure the <paramref name="request"/> <see cref="HttpRequest.Body"/> can be read multiple times. Normally /// buffers request bodies in memory; writes requests larger than <paramref name="bufferThreshold"/> bytes to /// disk. /// </summary> /// <param name="request">The <see cref="HttpRequest"/> to prepare.</param> /// <param name="bufferThreshold"> /// The maximum size in bytes of the in-memory <see cref="System.Buffers.ArrayPool{Byte}"/> used to buffer the /// stream. Larger request bodies are written to disk. /// </param> /// <param name="bufferLimit"> /// The maximum size in bytes of the request body. An attempt to read beyond this limit will cause an /// <see cref="System.IO.IOException"/>. /// </param> /// <remarks> /// Temporary files for larger requests are written to the location named in the <c>ASPNETCORE_TEMP</c> /// environment variable, if any. If that environment variable is not defined, these files are written to the /// current user's temporary folder. Files are automatically deleted at the end of their associated requests. /// </remarks> public static void EnableBuffering(this HttpRequest request, int bufferThreshold, long bufferLimit) { BufferingHelper.EnableRewind(request, bufferThreshold, bufferLimit); } }