diff --git a/backend/src/Squidex.Web/AssetRequestSizeLimitAttribute.cs b/backend/src/Squidex.Web/AssetRequestSizeLimitAttribute.cs index 7a85779d4..375bb6969 100644 --- a/backend/src/Squidex.Web/AssetRequestSizeLimitAttribute.cs +++ b/backend/src/Squidex.Web/AssetRequestSizeLimitAttribute.cs @@ -16,8 +16,10 @@ using Squidex.Domain.Apps.Entities.Assets; namespace Squidex.Web { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] - public sealed class AssetRequestSizeLimitAttribute : Attribute, IAuthorizationFilter, IRequestSizePolicy + public sealed class AssetRequestSizeLimitAttribute : Attribute, IAuthorizationFilter, IRequestSizePolicy, IOrderedFilter { + public int Order { get; } = 900; + public void OnAuthorization(AuthorizationFilterContext context) { var assetOptions = context.HttpContext.RequestServices.GetService>(); @@ -35,6 +37,16 @@ namespace Squidex.Web maxRequestBodySizeFeature.MaxRequestBodySize = null; } } + + if (assetOptions?.Value.MaxSize > 0) + { + var options = new FormOptions + { + MultipartBodyLengthLimit = assetOptions.Value.MaxSize + }; + + context.HttpContext.Features.Set(new FormFeature(context.HttpContext.Request, options)); + } } } }