Não é possível gravar em uma unidade mapeada usando representação

Basicamente, estou executando o mesmo problema que este postAcessando unidades mapeadas ao representar o ASP.NET

Estou trabalhando em um site herdado e preciso permitir que os administradores alterem o logotipo, os banners etc. do site, de um arquivo de imagem em suas áreas de trabalho para uma unidade mapeada no servidor.

Portanto, o site deles usa personificação sempre que precisa economizar na unidade e está funcionando bem; no entanto, não consigo fazer com que funcione no ambiente de teste nem no ambiente de teste.

Alguma ideia? Verifiquei usuário e senha duas vezes (o código não especifica domínio) e não é esse o problema.

Aqui está um trecho do código que lida com a representação:

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

E um teste -sanitized-:

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

questionAnswers(1)

yourAnswerToTheQuestion