请问在 ASP.NET Core 中间件中响应 401 Unauthorized 错误的最优雅姿势是什么?
如果是 Controller Action ,可以用 return Unauthorized();
,在 middleware 该用什么姿势呢?
在这篇博文 Elegant way of producing HTTP responses in ASP.NET Core outside of MVC controllers 中找到了优雅姿势。
app.Use(async (context, next) =>
{
if (!await userService.IsUserInRoleAsync("xxx", userId))
{
await context.Unauthorized("401 Unauthorized");
}
else
{
await next.Invoke();
}
});
注:需要安装 nuget 包 WebApiContrib.Core 。