<PackageReference Include="System.Security.Principal.Windows" Version="5.0.0" />

System.Security.Principal.WindowsIdentity

namespace System.Security.Principal { public class WindowsIdentity : ClaimsIdentity, IDisposable { public new const string DefaultIssuer = "AD AUTHORITY"; public SafeAccessTokenHandle AccessToken { get; } public IdentityReferenceCollection Groups { get; } public TokenImpersonationLevel ImpersonationLevel { get; } public virtual bool IsAnonymous { get; } public virtual bool IsGuest { get; } public virtual bool IsSystem { get; } public SecurityIdentifier Owner { get; } public SecurityIdentifier User { get; } public WindowsIdentity(IntPtr userToken); public WindowsIdentity(IntPtr userToken, string type); public WindowsIdentity(string sUserPrincipalName); public void Dispose(); protected virtual void Dispose(bool disposing); public static WindowsIdentity GetAnonymous(); public static WindowsIdentity GetCurrent(); public static WindowsIdentity GetCurrent(bool ifImpersonating); public static WindowsIdentity GetCurrent(TokenAccessLevels desiredAccess); public static void RunImpersonated(SafeAccessTokenHandle safeAccessTokenHandle, Action action); public static T RunImpersonated<T>(SafeAccessTokenHandle safeAccessTokenHandle, Func<T> func); } }