Acceder a un archivo en una unidad de red

Antecedentes: Tengo una aplicación que tiene que leer los archivos en una unidad de red (Z :)

Esto funciona muy bien en el dominio de mi oficina, sin embargo, no funciona en el sitio (en un dominio diferente). Por lo que puedo decir, los usuarios del dominio y las unidades de red están configurados de la misma manera, sin embargo, no tengo acceso a los usuarios, etc. en el dominio de los clientes.

Cuando no pude acceder a la unidad de red, pensé que necesitaba un token para un usuario. Así es como suplanto al usuario:

[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

...

const string userName = "USER";
const string pass = "PASS";
const string domainName = "VALIDDOMAIN.local"  //tried with valid domain name and with null, same result
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;

IntPtr tokenHandle = new IntPtr(0);

bool returnValue = LogonUser(userName, domainName, pass,
            LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
            ref tokenHandle);

if (!returnValue)
    throw new Exception("Logon failed.");

WindowsImpersonationContext impersonatedUser = null;
try
{
    WindowsIdentity wid = new WindowsIdentity(tokenHandle);
    impersonatedUser = wid.Impersonate();

}
finally
{
    if (impersonatedUser != null) impersonatedUser.Undo();
}

Ahora aquí está la parte interesante / extraña. En mi red, la aplicación ya puede acceder a la unidad de red, y si trato de suplantar al usuario activo (exactamente el mismo usuario, incluido el mismo dominio) no podrá acceder a la unidad de red.

Esto me deja indefenso ya que ahora no tengo idea de qué funciona y qué no funciona, y más aún, ¿funcionará en el sitio?

¿Qué me estoy perdiendo?

EDITAR: Olvidé escribir esto mientras originalmente hacía la pregunta: intenté ingresar un nombre de dominio válido y no funcionó, así que luego intenté ingresar nulo para obtener el mismo nombre de usuario que sin este código (ya que funciona de forma predeterminada en nuestro dominio). Esto no ayudó, y así es como dominio = nulo; Terminé en esta pregunta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta