Impersonating a user in wrong domain doesn't throw exception

Posted by Rita on Stack Overflow See other posts from Stack Overflow or by Rita
Published on 2010-06-07T19:18:45Z Indexed on 2010/06/07 19:22 UTC
Read the original article Hit count: 229

Filed under:
|
|
|

I've used the common impersonation code and it worked just fine, until I inserted random 'dggdgsdg' in domain - and it worked nonetheless...

if (LogonUser(Username, Domain, Password, Logon32LogonInteractive, Logon32ProviderDefault,
                                      ref existingTokenHandle) &&
                            DuplicateToken(existingTokenHandle, (int)SecurityImpersonationLevel.SecurityDelegation,
                                           ref duplicateTokenHandle))
    {
            Identity = new WindowsIdentity(duplicateTokenHandle);
            ImpersonationContext = Identity.Impersonate();
    }
    else
    {
            throw new Win32Exception(Marshal.GetLastWin32Error());
    } 

I used some TestUser on my domain, and it worked. I then switched domain, to random nonsense 'werwerhrg', and it impersonated the TestUser on my domain! Why? I would expect an exception to be thrown, why on earth is it working?

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET