Kann nicht mit Identitätswechsel auf ein zugeordnetes Laufwerk schreiben

rundsätzlich habe ich das gleiche Problem wie dieser Beitrag Zugriff auf zugeordnete Laufwerke beim Identitätswechsel in ASP.NET

Ich arbeite an einer älteren Website und muss den Administratoren erlauben, das Logo, die Banner usw. der Website von einer Image-Datei auf ihren Desktops auf ein zugeordnetes Laufwerk auf dem Server zu ändern.

So verwendet ihre Website immer dann Identitätswechsel, wenn sie auf dem Laufwerk gespeichert werden muss, und es funktioniert einwandfrei. Ich kann es jedoch weder in der Testumgebung noch in meiner Testumgebung zum Laufen bringen.

Irgendwelche Ideen? Ich habe Benutzer und Passwort doppelt überprüft (der Code gibt keine Domain an) und das ist nicht das Problem.

Hier ist ein Auszug aus dem Code, der Identitätswechsel behandelt:

public bool ImpersonateUser(String user, String password, String domain)
{
    WindowsIdentity tempWindowsIdentity;
    IntPtr token = IntPtr.Zero;
    IntPtr tokenDuplicate = IntPtr.Zero;

    if (RevertToSelf())
    {
        if (LogonUserA(user, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) != 0)
        {
            if (DuplicateToken(token, 2, ref tokenDuplicate) != 0)
            {
                tempWindowsIdentity = new WindowsIdentity(tokenDuplicate);
                impersonationContext = tempWindowsIdentity.Impersonate();
                if (impersonationContext != null)
                {
                    CloseHandle(token);
                    CloseHandle(tokenDuplicate);
                    return true;
                }
            }
        }
    }
    //... rest of the code

nd ein -sanitisierter- Test:

if (impUtility.ImpersonateUser("user", "password", string.Empty))
{
    fu.SaveAs(@"C:\Images\" + imgName);
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage