Question

Supposons que j'ai un site sur lequel, une fois que l'utilisateur sélectionne quelques options, voici ce qui devrait (devrait) se produire:

  • Récupère les fichiers (dans un répertoire) de la machine locale - fonctionne jusqu'à présent
  • les déplace vers un serveur distant - c’est là que j’ai besoin d’aide

Détails:

  • Le serveur distant sera trouvé via le chemin UNC (\ nomserveur \ xyz)
  • J'ai accès au nom d'utilisateur / mot de passe pour accéder à ce chemin UNC, mais comme nous appartenons à un domaine différent et que je ne contrôle pas les décisions du service informatique, je ne peux pas avoir un seul utilisateur disposant d'autorisations dans les deux domaines. / li>

Comment puis-je configurer mon site pour ce faire? Si je personnifie, je risque de perdre l'autorisation de récupérer des fichiers sur la machine locale ...

Remarque: j'ai également un accès FTP au serveur distant. S'il existe une bonne API FTP que je pourrais utiliser, cela fonctionnerait également, mais je ne veux pas avoir à parcourir chaque fichier.

Oh, c’est aussi .NET 1.1.

Ceci est une suggestion sur une question connexe: Besoin d'usurper l'identité de l'utilisateur pour accéder à une ressource réseau, compte Asp.Net

Était-ce utile?

La solution

J'ai déjà fait ce domaine croisé auparavant. Tout ce dont vous avez besoin est que le nom d'utilisateur et le mot de passe soient identiques et cela fonctionnera, même s'ils se trouvent dans des domaines différents. La chose à vérifier est que votre application .NET s'exécute en tant que cet utilisateur.

Par exemple:

  • Dans le domaine XYZ, un utilisateur "filesynch" " avec un mot de passe " pass "
  • Dans le domaine PDQ, un utilisateur " fichiersynch " avec un mot de passe " pass "
  • Assurez-vous que l'utilisateur PDQ \ filesynch a le droit de partager sur la machine du domaine PDQ
  • Exécuter une application sur un ordinateur du domaine XYZ en tant qu'utilisateur XYZ \ filesynch
  • Copier des fichiers sur le réseau

Autres conseils

Cela pourrait être fait avec le unc ou le ftp. Pour les versions antérieures (unc), vous pouvez utiliser File.Copy (source, cible). Pour ces dernières, vous pouvez utiliser plusieurs techniques. Si vous enregistrez ce que l'utilisateur souhaite sur l'ordinateur sur le site distant, vous pouvez utiliser un client Web (System.Net.WebClient) pour télécharger les fichiers via n'importe quelle URL accessible (c'est-à-dire: activer la navigation dans IIS).

Si vous pouvez utiliser .NET 2.0, vous avez de meilleures options avec des objets plus fiables (par exemple: FtpRequest). Pourquoi ne pouvez-vous pas utiliser .NET 2.0?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top