fix(auth): Cookie认证AJAX请求返回401并增加诊断日志
OnRedirectToLogin/OnRedirectToAccessDenied中对AJAX请求返回401而非302, 并增加请求头诊断日志便于排查认证跳转问题
This commit is contained in:
+10
-4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user