Recently, I had need to programmatically impersonate a Windows account which has elevated permissions. In my case, only one step in a multi-step process required the extended permissions so the impersonation was temporary.
To do so in .NET a P/Invoke call into unmanaged code is required. The detail of which can be found here: WindowsIdentity.Impersonate
A call into unmanaged code is made in order to retrieve a user token. The token is then passed to a framework class which facilitates the impersonation.
I've written a small class which wraps this functionality and thought it may be of use to other people:
To do so in .NET a P/Invoke call into unmanaged code is required. The detail of which can be found here: WindowsIdentity.Impersonate
A call into unmanaged code is made in order to retrieve a user token. The token is then passed to a framework class which facilitates the impersonation.
I've written a small class which wraps this functionality and thought it may be of use to other people: