Connessione SFPT tramite libreria .NET WinSCP in C#

A differenza del protocollo di comunicazione FTP, che si gestisce tramite le classi dell’assemply System.Net, in c# la gestione del protocollo SFTP (SSH File Transfer Protocol) non è disponibile. Esistono però diverse librerie che possiamo utilizzare e in questo post vedremo come effettuare una Connessione SFPT tramite libreria .NET WinSCP in C#.


Connessione SFPT tramite libreria .NET WinSCP in C#

Panoramica sull’assemply .NET di WinSCP

WinSCP oltre a mettere a disposizione un ottimo software per effettuare connessioni FTP, SFTP, FTPS e SCP, ha implementato anche l’assembly che è possibile includere nei nostri progetti .NET.
L’assembly, con le relative librerie, è installabile tramite il gestore NuGet presente già dalla versione di Visual Studio 2015.
Per maggiori informazioni potete visitare il sito ufficiale di WinSCP a questo link.

Installazione Assemby e Librerie

Cominciamo creando un nuovo progetto da Visuali Studio (va bene anche la versione Community Edition).
Dopo aver aperto l’IDE creiamo un nuovo progetto da File -> Nuovo -> Progetto

Connessione SFPT tramite libreria .NET WinSCP in C# Creazione nuovo progetto c#

Selezioniamo come tipo di progetto App Console (.NET Framework) Visual C#, diamogli un Nome (SFTP-Test nel mio caso), scegliamo il Percorso in cui verrà salvato e clicchiamo sul pulsante OK

Connessione SFPT tramite libreria .NET WinSCP in C#. Configurazione progetto

Ora dobbiamo installare l’assembly .NET di WinSCP.
In Esplora soluzioni clicchiamo con il tasto destro del mouse sulla voce Riferimenti e poi su Gestione pacchetti NuGet

Apertura gestore pacchetti nuGet

Nella finestra che ci compare selezioniamo la Tab Sfoglia (1), scriviamo winscp nella Barra di ricerca (2), selezioniamo la voce relativa a WinSCP (3) e clicchiamo su Installa (4)

Connessione SFPT tramite libreria .NET WinSCP in C#. Ricerca assembly

Alla richiesta di conferma clicchiamo OK per avviare la fase di installazione.
Al termine dell’installazione dell’assembly possiamo chiudere la pagina di gestione dei pacchetti NuGet

Assembly installato


Connessione SFPT tramite libreria .NET WinSCP in C#

Implementazione connessione SFTP

Cominciamo a scrivere il codice, che si occuperà di effettuare la connessione SFTP, nel file Program.cs presente nel progetto.

file program.cs

Il primo passo da fare, per poter utilizzare le classi di WinSCP, è includere l’assembly tramite la direttiva using

Dopo aver aggiunto l’assembly possiamo utilizzare tutte le classi e i metodi messi a disposizione.
Questo è il codice completo per effettuare la connessione tramite protocollo SFTP

Diamo un’occhiata al codice.
Tramite la classe SessionOptions impostiamo tutti i parametri di accesso al server.
Il parametro GiveUpSecurityAndAcceptAnySshHostKey valorizzato con true indica che non utilizzeremo una chiave di autorizzazione del Server.
Se la connessione prevede una chiave di autorizzazione,di solito fornita dall’amministrazione del server, possiamo inserirla sostituendo il parametro GiveUpSecurityAndAcceptAnySshHostKey in questo modo

La riga di codice

si occupa di effettuiamo la connessione vera e propria e, se non ci sono errori, ci verrà visualizzato il messaggio Successful connection

Esecuzione del progetto

Ora non ci resta che testare il nostro progetto facendolo eseguire cliccando su Avvia

Connessione SFPT tramite libreria .NET WinSCP in C#. Esecuzione del progetto

Se la connessione avviene senza errori vedremo una schermata della console con il messaggio di avvenuta connessione

Risultato connessione

Bene, per quanto riguarda la Connessione SFPT tramite libreria .NET WinSCP in C# è tutto. Nei prossimi post vedremo come effettuare l’Upload, il Download, il Delete e la visualizzazione della lista di file presenti sul serve SFTP.

A presto 😉

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *