If an Identity object is a WindowsIdentity object, then the Identity object might represent a Windows NT token capable of impersonation. Given a WindowsIdentity object and sufficient Windows NT privilege, a thread can use the WindowsIdentity object to impersonate the referenced account. This simply requires calling the WindowsIdentity.Impersonate method, which returns the WindowsImpersonationContext for the impersonation. Reverting to self can be done by calling the Undo method on the WindowsImpersonationContext.
Note that neither calling Impersonate nor Undo changes the Principal object associated with the current call context. Instead, impersonation and reverting changes the token associated with the current operating system process..