fix(auth): Cookie认证AJAX请求返回401并增加诊断日志

OnRedirectToLogin/OnRedirectToAccessDenied中对AJAX请求返回401而非302,
并增加请求头诊断日志便于排查认证跳转问题
This commit is contained in:
hjhan
2026-04-27 13:25:50 +08:00
parent 39fe5a69e6
commit bac16132a8
+10 -4
View File
@@ -74,8 +74,11 @@ try
{
OnRedirectToLogin = context =>
{
if (context.Request.Headers["X-Requested-With"] == "XMLHttpRequest" ||
!context.Request.Headers["Accept"].ToString().Contains("text/html"))
var accept = context.Request.Headers["Accept"].ToString();
var xrw = context.Request.Headers["X-Requested-With"].ToString();
var isAjax = xrw == "XMLHttpRequest" || !accept.Contains("text/html");
logger.Info($"[CookieAuth] OnRedirectToLogin Path={context.Request.Path} Accept={accept} X-Requested-With={xrw} IsAjax={isAjax}");
if (isAjax)
{
context.Response.StatusCode = 401;
return Task.CompletedTask;
@@ -85,8 +88,11 @@ try
},
OnRedirectToAccessDenied = context =>
{
if (context.Request.Headers["X-Requested-With"] == "XMLHttpRequest" ||
!context.Request.Headers["Accept"].ToString().Contains("text/html"))
var accept = context.Request.Headers["Accept"].ToString();
var xrw = context.Request.Headers["X-Requested-With"].ToString();
var isAjax = xrw == "XMLHttpRequest" || !accept.Contains("text/html");
logger.Info($"[CookieAuth] OnRedirectToAccessDenied Path={context.Request.Path} Accept={accept} X-Requested-With={xrw} IsAjax={isAjax}");
if (isAjax)
{
context.Response.StatusCode = 403;
return Task.CompletedTask;