using Microsoft.AspNetCore.Authentication;
namespace Dpz.Core.Auth.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();
await context.SignOutAsync(ConstValues.DefaultScheme);
await context.ChallengeAsync(ConstValues.DefaultScheme);
}
}
}
internal static class CurrentUserRequiredExceptionMiddlewareExtensions
{
public static IApplicationBuilder UseCurrentUserRequiredExceptionHandling(
this IApplicationBuilder builder
)
{
return builder.UseMiddleware<CurrentUserRequiredExceptionMiddleware>();
}
}
AI 正在分析代码…
评论加载中...