public Task InvokeAsync(HttpContext context)
 {
     if (InternalHttpHelper.TryGetInternalContext(context, out var manager, out var match, out var tcs))
     {
         _requestsMultiHandler.Publish(new AuthenticatedHttpRequestMessage(manager, match));
         return(tcs.Task);
     }
     Log.Error("Failed to get internal http components for request {requestId}", context.TraceIdentifier);
     context.Response.StatusCode = HttpStatusCode.InternalServerError;
     return(Task.CompletedTask);
 }
Esempio n. 2
0
        public async Task InvokeAsync(HttpContext context, RequestDelegate next)
        {
            if (InternalHttpHelper.TryGetInternalContext(context, out var manager, out var match, out _))
            {
                if (await _authorization.CheckAccessAsync(manager.User, match.ControllerAction.Operation(match.TemplateMatch), context.RequestAborted).ConfigureAwait(false))
                {
                    await next(context).ConfigureAwait(false);

                    return;
                }

                context.Response.StatusCode = HttpStatusCode.Unauthorized;
                return;
            }
            //LOG
            Log.Error("Failed to get internal http components for request {requestId}", context.TraceIdentifier);
            context.Response.StatusCode = HttpStatusCode.InternalServerError;
        }