diff --git a/src/Orchard/WebApi/Filters/OrchardApiActionFilterDispatcher.cs b/src/Orchard/WebApi/Filters/OrchardApiActionFilterDispatcher.cs index a317eb9db..d36d84199 100644 --- a/src/Orchard/WebApi/Filters/OrchardApiActionFilterDispatcher.cs +++ b/src/Orchard/WebApi/Filters/OrchardApiActionFilterDispatcher.cs @@ -14,7 +14,10 @@ namespace Orchard.WebApi.Filters { var workContext = actionContext.ControllerContext.GetWorkContext(); foreach (var actionFilter in workContext.Resolve>().OfType()) { - continuation = () => actionFilter.ExecuteActionFilterAsync(actionContext, cancellationToken, continuation); + var tempContinuation = continuation; + continuation = () => { + return actionFilter.ExecuteActionFilterAsync(actionContext, cancellationToken, tempContinuation); + }; } return await continuation(); diff --git a/src/Orchard/WebApi/Filters/OrchardApiAuthorizationFilterDispatcher.cs b/src/Orchard/WebApi/Filters/OrchardApiAuthorizationFilterDispatcher.cs index 1e3970218..7479b6403 100644 --- a/src/Orchard/WebApi/Filters/OrchardApiAuthorizationFilterDispatcher.cs +++ b/src/Orchard/WebApi/Filters/OrchardApiAuthorizationFilterDispatcher.cs @@ -14,7 +14,10 @@ namespace Orchard.WebApi.Filters { var workContext = actionContext.ControllerContext.GetWorkContext(); foreach (var actionFilter in workContext.Resolve>().OfType()) { - continuation = () => actionFilter.ExecuteAuthorizationFilterAsync(actionContext, cancellationToken, continuation); + var tempContinuation = continuation; + continuation = () => { + return actionFilter.ExecuteAuthorizationFilterAsync(actionContext, cancellationToken, tempContinuation); + }; } return await continuation();