From ce86845818db42f7417874f26392bc9f5d10e7f9 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 6 Jul 2026 10:07:28 +0800 Subject: [PATCH] Preserve non-ClaimsPrincipal thread principal instead of treating it as anonymous --- .../Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs index e5234a06d1..99e8536eec 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/ThreadCurrentPrincipalAccessor.cs @@ -8,6 +8,12 @@ public class ThreadCurrentPrincipalAccessor : CurrentPrincipalAccessorBase, ISin { protected override ClaimsPrincipal GetClaimsPrincipal() { - return Thread.CurrentPrincipal as ClaimsPrincipal ?? new ClaimsPrincipal(new ClaimsIdentity()); + var principal = Thread.CurrentPrincipal; + if (principal == null) + { + return new ClaimsPrincipal(new ClaimsIdentity()); + } + + return principal as ClaimsPrincipal ?? new ClaimsPrincipal(principal); } }