using Dpz.Core.Entity.Base;
namespace Dpz.Core.WebApi.Middleware;
internal class CurrentUserRequiredExceptionMiddleware(
RequestDelegate next,
ILogger<CurrentUserRequiredExceptionMiddleware> logger
)
{
public async Task InvokeAsync(HttpContext context)
{
try
{
await next(context);
}
catch (CurrentUserRequiredException ex) when (!context.Response.HasStarted)
{
logger.LogInformation(ex, "Current user is required");
context.Response.Clear();
context.Response.StatusCode = StatusCodes.Status401Unauthorized;
await context.Response.WriteAsJsonAsync(
ResponseResult.Fail(ex.Message, StatusCodes.Status401Unauthorized),
context.RequestAborted
);
}
}
}
internal static class CurrentUserRequiredExceptionMiddlewareExtensions
{
public static IApplicationBuilder UseCurrentUserRequiredExceptionHandling(
this IApplicationBuilder builder
)
{
return builder.UseMiddleware<CurrentUserRequiredExceptionMiddleware>();
}
}
AI 正在分析代码…
评论加载中...