diff --git a/src/Orchard/Mvc/MvcModule.cs b/src/Orchard/Mvc/MvcModule.cs index 7ea7a9de9..2c8964b06 100644 --- a/src/Orchard/Mvc/MvcModule.cs +++ b/src/Orchard/Mvc/MvcModule.cs @@ -28,9 +28,32 @@ namespace Orchard.Mvc { moduleBuilder.RegisterModule(module); moduleBuilder - .Register(ctx => HttpContext.Current == null ? null : new HttpContextWrapper(HttpContext.Current)) + .Register(ctx => HttpContext.Current == null ? (HttpContextBase)new HttpContextPlaceholder() : new HttpContextWrapper(HttpContext.Current)) .As() .FactoryScoped(); } + + /// + /// standin context for background tasks. + /// + class HttpContextPlaceholder : HttpContextBase { + public override HttpRequestBase Request { + get { return new HttpRequestPlaceholder(); } + } + } + + /// + /// standin context for background tasks. + /// + class HttpRequestPlaceholder : HttpRequestBase { + /// + /// anonymous identity provided for background task. + /// + public override bool IsAuthenticated { + get { return false; } + } + } } + + } \ No newline at end of file