7
votes

C # Copier le fichier dans un autre répertoire à l'aide d'un autre domaine / nom d'utilisateur / mot de passe

en C # 2008, J'essaie de copier un fichier sur un chemin de destination (par exemple \ Newserver \ DestinationFolder), qui peut être dans un autre domaine ou à l'aide d'un nom d'utilisateur / mot de passe différent de celui de l'utilisateur actuel. Comment puis-je spécifier ces nouvelles informations d'identification du réseau avant de faire le fichier.copy (...)?

Merci!


3 Réponses :


2
votes

bonne question mais je ne pense pas que cela soit possible. Je crois que ce type de copie de fichier d'un domaine à un autre (où il n'ya pas de configuration de confiance) serait considéré comme un trou de sécurité.

Certaines options:

  1. Configurez une confiance entre les domaines et donnez des droits à l'utilisateur actuel
  2. Vous pouvez essayer une commande shell exécuter et voir si vous pouvez effectuer ce travail via des paramètres de ligne de commande. Je pensais que la commande "UTILISATION NET".

0 commentaires

1
votes

Regardez sur Logonuser. Voici la page Pinvoke pour cela:

http://www.pinvoke.net/default.aspx/advapi32.logonuser


0 commentaires

0
votes

MapDrive => Copier des fichiers en tant qu'utilisateur local => UnmapDrive. Jetez un look ici :

    protected int MapDrive(){
        NETRESOURCEA[] resources = new NETRESOURCEA[1];
        resources[0] = new NETRESOURCEA();
        resources[0].dwType = 1;
        int dwFlags = 1;
        resources[0].lpLocalName = _DriveLetter;
        resources[0].lpRemoteName = _Path;
        resources[0].lpProvider = null; 
        int ret = WNetAddConnection2A(resources, null, null, dwFlags);
        return ret;
    }

    protected int UnmapDrive()
    {
        int ret = WNetCancelConnection2A(_DriveLetter, 0, true);
        return ret;
    }


0 commentaires