SecurityContext.SuppressFlow Method

Definition

Suppresses the flow of the security context across asynchronous threads.

public:
 static System::Threading::AsyncFlowControl SuppressFlow();
public static System.Threading.AsyncFlowControl SuppressFlow ();
[System.Security.SecurityCritical]
public static System.Threading.AsyncFlowControl SuppressFlow ();
static member SuppressFlow : unit -> System.Threading.AsyncFlowControl
[<System.Security.SecurityCritical>]
static member SuppressFlow : unit -> System.Threading.AsyncFlowControl
Public Shared Function SuppressFlow () As AsyncFlowControl

Returns

An AsyncFlowControl structure for restoring the flow.

Attributes

Exceptions

.NET 5+ (including .NET Core): In all cases.

Remarks

Use this method to suppress the flow of SecurityContext information on the current thread for asynchronous operations.

The common language runtime (CLR) is only aware of the impersonation operations performed using managed code. The CLR has no knowledge of impersonation performed outside of managed code, such as platform invokes to unmanaged code that does the impersonation, or through calls to Win32 functions. To flow identity across asynchronous points you must use the managed WindowsIdentity and WindowsImpersonationContext methods.

Use the Undo method on the returned AsyncFlowControl structure to return the SecurityContext object to its previous state.

This method is protected with a SecurityAction.LinkDemand for SecurityPermissionFlag.Infrastructure permission. A fully trusted component can call this method to suppress the flow of the SecurityContext information during asynchronous calls. When the flow is suppressed, the Capture method returns null.

Applies to