WNetUseConnection connects to remote server/UNC on same domain but not to a different/remote domain
<p>I am able to connect to remote UNC as long as it is on the same network but when I try to access server across the domain, say from Network A to Network B it does not connect and I get the message the network path was not found. How can I connect with the remote UNC on different/untrusted network. </p>

<pre><code>[DllImport("Mpr.dll")]
private static extern int WNetUseConnection(
    IntPtr hwndOwner,
    NETRESOURCE lpNetResource,
    string lpPassword,
    string lpUserID,
    int dwFlags,
    string lpAccessName,
    string lpBufferSize,
    string lpResult
);

[DllImport("Mpr.dll")]
private static extern int WNetCancelConnection2(
    string lpName,
    int dwFlags,
    bool fForce
);

[StructLayout(LayoutKind.Sequential)]
private class NETRESOURCE
{
    public int dwScope = 0;
    public int dwType = 0;
    public int dwDisplayType = 0;
    public int dwUsage = 0;
    public string lpLocalName = null;//changed from "" to null
    public string lpRemoteName = "";
    public string lpComment = "";
    public string lpProvider = null;//changed from "" to null
}

public static string connectToRemote(string remoteUNC, string username, string password)
{
    return connectToRemote(remoteUNC, username, password, false);
}

public static string connectToRemote(string remoteUNC, string username, string password, bool promptUser)
{
    NETRESOURCE nr = new NETRESOURCE();
    nr.dwType = RESOURCETYPE_DISK;
    nr.lpRemoteName =remoteUNC;

    int ret;
    if (promptUser)
        ret = WNetUseConnection(IntPtr.Zero, nr, "", "", CONNECT_INTERACTIVE | CONNECT_PROMPT, null, null, null);
    else
        ret = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null);

    if (ret == NO_ERROR) return null;
    return getErrorForNumber(ret);
}

public static string disconnectRemote(string remoteUNC)
{
    int ret = WNetCancelConnection2(remoteUNC, CONNECT_UPDATE_PROFILE, false);
    if (ret == NO_ERROR) return null;
    return getErrorForNumber(ret);
}
</code></pre>
