Domanda

Diciamo che ho un sito in cui una volta che l'utente seleziona alcune opzioni, dovrebbe succedere quanto segue:

  • Prende i file (in una directory) dalla macchina locale - funziona bene finora
  • Li sposta su un server remoto: è qui che ho bisogno di aiuto

dettagli:

  • Il server remoto verrà trovato tramite il percorso UNC (\ servername \ xyz)
  • Ho accesso al nome utente / password per accedere a quel percorso UNC, ma poiché siamo su un dominio diverso e non controllo le decisioni dell'IT, non posso avere un singolo utente con autorizzazioni in entrambi i domini.

Come posso configurare il mio sito per farlo? Se impersono, allora potrei perdere le autorizzazioni per afferrare i file sul computer locale ...

Nota: ho anche accesso FTP al server remoto. Se esiste una buona API FTP che potrei usare, anche quella funzionerebbe, ma non voglio dover iterare su ogni singolo file.

Oh, anche questo è .NET 1.1.


Questo è un suggerimento su una domanda correlata: Necessità di impersonare l'utente per l'accesso alla risorsa di rete, Account Asp.Net

È stato utile?

Soluzione

Ho già eseguito questo dominio incrociato in precedenza. Tutto ciò che serve è che il nome utente e la password siano gli stessi e questo funzionerà, anche se si trovano in domini diversi. La cosa di cui accertarsi è che l'applicazione .NET sia in esecuzione come questo utente.

Ad esempio:

  • Nel dominio XYZ ha un utente " filesynch " con una password " pass "
  • Nel dominio PDQ un utente "quota filesynch" con una password " pass "
  • Assicurati che l'utente PDQ \ filesynch abbia accesso alla condivisione sulla macchina nel dominio PDQ
  • Esegui l'applicazione su una macchina nel dominio XYZ come utente XYZ \ filesynch
  • Copia i file sulla rete

Altri suggerimenti

Questo potrebbe essere fatto con unc o ftp. Per i primi (unc) potresti usare File.Copy (sorgente, target) - per i secondi puoi usare un paio di tecniche. Se memorizzi ciò che l'utente voleva dalla macchina sul sito remoto, potresti utilizzare un client web (System.Net.WebClient) per scaricare i file tramite qualsiasi URL accessibile (ad esempio: attiva la navigazione dei file in IIS).

Se puoi usare .NET 2.0 hai opzioni migliori con oggetti più affidabili (es: FtpRequest) - c'è un motivo per cui non puoi usare .NET 2.0?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top