Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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
     };
 }