From 85a1c681b1b3e3b42a1ec2a2d34003b868e9d850 Mon Sep 17 00:00:00 2001 From: Marco Rossignoli Date: Wed, 12 Feb 2020 17:25:10 +0100 Subject: [PATCH] Fix AppDomain.SetPrincipalPolicy bug for new threads (#32104) * fix principal policy for new threads Fixes #31717 --- .../shared/System/Threading/Thread.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/System.Private.CoreLib/shared/System/Threading/Thread.cs b/src/System.Private.CoreLib/shared/System/Threading/Thread.cs index 28b2e6eb8f5a..a2be70c847fc 100644 --- a/src/System.Private.CoreLib/shared/System/Threading/Thread.cs +++ b/src/System.Private.CoreLib/shared/System/Threading/Thread.cs @@ -136,11 +136,12 @@ public static IPrincipal? CurrentPrincipal { get { - if (s_asyncLocalPrincipal is null) + IPrincipal? principal = s_asyncLocalPrincipal?.Value; + if (principal is null) { - CurrentPrincipal = AppDomain.CurrentDomain.GetThreadPrincipal(); + CurrentPrincipal = (principal = AppDomain.CurrentDomain.GetThreadPrincipal()); } - return s_asyncLocalPrincipal?.Value; + return principal; } set {