【发布时间】:2017-05-25 19:08:45
【问题描述】:
我正在我的 Web API2 服务器中实现基于 OAuth 令牌的安全性(在 IIS 下运行)
我正在使用提供OAuthAuthorizationServerProvider 等的各种中间件,这些中间件采用从BaseValidatingContext 派生的各种参数
比如我有下面的sn-p...
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var result = await GetAuthenticateAndGetClaimsAsync("dummy", context.UserName, context.Password);
if (result.HasError)
{
context.SetError("Error code", "Error description);
return;
}
对context.SetError("Error code", "Error description); 的调用将使响应的主体具有以下内容..
{
"error": "Error code",
"error_description": "Error description
}
我想更改这些字段的名称,以反映我在应用程序其他地方使用的错误,所以我可以有类似的东西..
{
"code": "Error code",
"message": "Error description
}
这可能吗?如果可以,我该怎么做?
我自己也可以设置状态码也不错,但这不是那么重要,我想更改的更多是上述字段。
提前感谢您的任何建议。
【问题讨论】:
-
嗨..什么重新映射对象?..上下文.SetError ..return somehting?
-
是的,我希望返回的错误对象包含字段代码和消息,而不是错误和错误描述
-
好的,所以尝试将它重新映射到您的自定义对象..类似于 public class MyCusotmError { public string message {get; set;} 公共字符串代码 {get; set;}} 然后 var error = context.SetError("Error code", "Error description); 然后 var my csutomeror = new MyCusotmError { message = error.error_description , code = error.error}
标签: asp.net-web-api oauth-2.0 asp.net-identity owin