I am writing a class to handle impersonation and delegation for use in in asp.net, WCF services, and WinForms apps.
Per MSDN, WindowsIdentity.GetCurrent() returns a WindowsIdentity object that represents the current Windows user.
And
Per MSDN, WindowsIdentity.Impersonate allows code to impersonate a different Windows user.
So, what effect does impersonating the current user have, and more importantly, in a web app, how can WindowsIdentity.GetCurrent() return other than the process starter identity or the already impersonated end user?