The following code doesn't work:

```
IntPtr token = Win32Dll.LogonUser(“user1”, “mydomain”, “password1”);
WindowsIdentity id = new WindowsIdentity(token);
WindowsImpersonationContext ic = id.Impersonate();
byte[] unprotectedBytes = ProtectedData.Unprotect(passwordBytes, null, DataProtectionScope.CurrentUser);
password = Encoding.Unicode.GetString(unprotectedBytes);
ic.Undo();

```

The password is not decrypted.

MSDN says

> 
> "If you use this method during impersonation, you may receive the
>  following error: "Key not valid for use in specified state." This
>  error can be prevented by loading the profile of the user you want to
>  impersonate, before calling the method."
> 
> 
>