博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何自定义oauthauthorizationserverprovider错误信息?
阅读量:6403 次
发布时间:2019-06-23

本文共 1807 字,大约阅读时间需要 6 分钟。

We are using the OAuthAuthorizationServerProvider class to do authorization in our ASP.NET Web Api app.

If the provided username and password is invalid in GrantResourceOwnerCredentials, the call

context.SetError( "invalid_grant", "The user name or password is incorrect." );

Produces the following Json result:

{    "error": "invalid_grant",    "error_description": "The user name or password is incorrect."}

Is there any way to customize this error result?

I would like to make it consistent with default error message format used in other parts of the API:

{    "message": "Some error occurred."}

Is this possible to achieve with the OAuthAuthorizationServerProvider?

 

2016年10月12日24分24秒

 

This is how I did it.

string jsonString = "{\"message\": \"Some error occurred.\"}";// This is just a work around to overcome an unknown internal bug. // In future releases of Owin, you may remove this.context.SetError(new string(' ',jsonString.Length-12)); context.Response.StatusCode = 400;context.Response.Write(jsonString);

 

2016年10月11日24分24秒

 

+1 for Dasun's answer. Here is how I extended it a bit further.

public class ErrorMessage{    public ErrorMessage(string message)    {        Message = message;    }    public string Message { get; private set; }}public static class ContextHelper{    public static void SetCustomError(this OAuthGrantResourceOwnerCredentialsContext context, string errorMessage)    {        var json = new ErrorMessage(errorMessage).ToJsonString();        context.SetError(json);        context.Response.Write(json);    }}

The .ToJsonString() is another extension method that uses the Newtonsoft.Json library.

public static string ToJsonString(this object obj)    {        return JsonConvert.SerializeObject(obj);    }

Usage:

context.SetCustomError("something went wrong");
学习交流群:364976091

转载地址:http://yyiea.baihongyu.com/

你可能感兴趣的文章
File Operations in Android NDK(转)
查看>>
如何将kux格式的视频转换成我们常用的MP4格式
查看>>
[sublime系列文章] sublime text 3插件配置说明
查看>>
学习 PixiJS — 碰撞检测
查看>>
Vue 基础篇
查看>>
JavaScript:函数防抖与函数节流
查看>>
关于区间贪心的补全
查看>>
架构设计步骤
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
区块链是一个公共数据库,要放在一个块内
查看>>
Jenkins 用户文档(目录)
查看>>
系统常见指标
查看>>
使用crond构建linux定时任务及日志查看
查看>>
地图绘制初探——基于maptalks的2.5D地图绘制
查看>>
SpringBoot2.0之七 实现页面和后台代码的热部署
查看>>
Git 仓库大扫除
查看>>
设计模式-单例模式
查看>>
es6基础0x014:WeakMap
查看>>
九种 “姿势” 让你彻底解决跨域问题
查看>>
php中mysqli 处理查询结果集总结
查看>>