Tag: owin fluentvalidation

WebAPi – 统一来自ApiController和OAuthAuthorizationServerProvider的错误消息格式

在我的WebAPI项目中,我使用Owin.Security.OAuth添加JWT身份validation。 在我的OAuthProvider的GrantResourceOwnerCredentials ,我使用下面的行设置错误: context.SetError(“invalid_grant”, “Account locked.”); 这将返回给客户: { “error”: “invalid_grant”, “error_description”: “Account locked.” } 在用户获得身份validation并且他尝试向我的某个控制器执行“正常”请求后,当模型无效时,他会得到以下响应(使用FluentValidation): { “message”: “The request is invalid.”, “modelState”: { “client.Email”: [ “Email is not valid.” ], “client.Password”: [ “Password is required.” ] } } 这两个请求都返回400 Bad Request ,但有时您必须查找error_description字段,有时还要查找message 我能够创建自定义响应消息,但这仅适用于我返回的结果。 我的问题是:是否有可能在ModelValidatorProviders和其他地方返回的响应中替换error message ? 我已经阅读了ExceptionFilterAttribute但我不知道这是否是一个好的起点。 FluentValidation应该不是问题,因为它只是向ModelState添加错误。 编辑: 接下来我要修复的是WebApi中返回数据的命名约定不一致 – 当从OAuthProvider返回错误时我们有error_details ,但是当使用ModelState (来自ApiController )返回BadRequest […]