public async Task Invoke(HttpContext context) { try { await _next(context); } catch (Exception exception) { var identityServerManagerException = exception as IdentityServerManagerException; var idServerException = exception as IdentityServerException; var code = ErrorCodes.UnhandledExceptionCode; if (identityServerManagerException != null) { code = identityServerManagerException.Code; } if (idServerException != null) { code = idServerException.Code; } var errorResponse = new SimpleIdentityServer.Common.Dtos.Responses.ErrorResponse { Error = code, ErrorDescription = exception.Message }; _options.ManagerEventSource.Failure(identityServerManagerException); context.Response.StatusCode = (int)HttpStatusCode.BadRequest; context.Response.ContentType = "application/json"; var serializedErrorResponse = errorResponse.SerializeWithDataContract(); await context.Response.WriteAsync(serializedErrorResponse); } }
private static JsonResult BuildError(string code, string message, HttpStatusCode statusCode) { var error = new SimpleIdentityServer.Common.Dtos.Responses.ErrorResponse { Error = code, ErrorDescription = message }; return new JsonResult(error) { StatusCode = (int)statusCode }; }