gpt4 book ai didi

asp.net-web-api - 如何更改 Web Api Core 未经授权的行为

转载 作者:行者123 更新时间:2023-12-01 06:04:17 25 4
gpt4 key购买 nike

默认ASP.NET Web Api Core未授权请求的行为是发送 401/403 error内容为空。我想通过指定某种指定错误的 Json 响应来更改它。

但是我很难找到一个合适的地方来引入这些变化。官方文档没有帮助(阅读全部内容)。我有一个猜测,我可能会 catch UnathorizedException在我的异常过滤器/中间件中,但它没有解决(我猜它在授权级别得到处理,甚至根本没有抛出)。

所以我的问题是如何在未经授权的请求的情况下自定义响应行为。

最佳答案

使用 .Net Core 3(或者可能更早),您可以编写一个中间件来检查 context.Response 是否具有 40x 状态,然后返回一个自定义对象。下面大概是我是怎么做的:

if (context.Response.StatusCode == (int)HttpStatusCode.Unauthorized)
{
var result = new MyStandardApiResponseDto
{
Error = new MyErrorDto
{
Title = "Unauthorized",
Messages = new List<string> { "You are not authorized to access the resource. Please login again." },
},
Result = null
};
await context.Response.WriteAsync(JsonConvert.SerializeObject(result));
}

关于asp.net-web-api - 如何更改 Web Api Core 未经授权的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41941616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com