Unterstützt .NET FtpWebRequest sowohl implizites (FTPS) als auch explizites (FTPES)?
Ich bin aufgefordert, zu unterstützen implizite und explizite FTPS (auch bekannt als FTPES). Wir sind derzeit mit die .NET FtpWebRequest
. Hat die FtpWebRequest
unterstützen beide Arten von FTPES, und was ist der Unterschied?
Dank
InformationsquelleAutor der Frage PortageMonkey | 2009-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
soweit ich weiß die aktuelle (.NET 2.0 und 3.5) version von FtpWebRequest unterstützt Explicit SSL nur.
Wenn Sie müssen Sie beide Implict und Explizites TLS/SSL müssen Sie versuchen, einen Drittanbieter-FTP/SSL-Komponenten. Folgenden code verwendet unsere Rebex FTP/SSL und stammt aus der tutorial-Seite.
Explizites TLS/SSL
Client eine Verbindung zum FTP-server in einem üblichen nicht-geschützt, in der Regel auf port 21 zugewiesen wurde, um über das FTP-Protokoll. Wenn es gewünscht ist, schützen Sie die Verbindung mit SSL ein SSL-Handshake initialisiert, die Verbindung ist gesichert und alle folgende Kommunikation ist geschützt.
Expliziten Schutz bedeutet, dass es möglich ist, um die Verbindung zu sichern, in jedem moment. Wenn Sie nicht wissen, ob Sie müssen den Schutz nicht auf die Verbindung Zeit, möchten Sie vielleicht, um eine Verbindung über das normale unverschlüsselte FTP-Protokoll und sichern Sie die Verbindung später.
Implizite SSL-Schutz, der die FTP-Sitzung
FTPS-Protokoll wurde ursprünglich zugeordnet einen separaten Anschluss von der IANA. Bei der Verbindung zu diesem port eine SSL-Aushandlung beginnt sofort und die Verbindung ist gesichert. Alle Daten-verbindungen sind ebenfalls gesichert implizit in der gleichen Weise. Dies ist ähnlich zu dem Ansatz von HTTPS.
Dieser Ansatz ist nicht bevorzugt, die von der IETF und ist veraltet. Es wird unterstützt von Rebex FTP/SSL für die Interoperabilität mit älteren Servern, aber es wird dringend empfohlen, mit dem expliziten Schutz statt, Wann immer möglich.
Können Sie herunterladen, die Komponente bei rebex.net/ftp-ssl.net/
InformationsquelleAutor der Antwort Martin Vobr
Benutzt habe ich Alex FTPS Client früher. Vielleicht sollten Sie schauen, um http://ftps.codeplex.com/.
InformationsquelleAutor der Antwort
.NET Framework/
FtpWebRequest
unterstützt nur explizites TLS/SSL-Verschlüsselung. Es unterstützt keine implizite TLS/SSL-Verschlüsselung.Ich glaube, es ist unwahrscheinlich, dass es jemals wird. Die FTP-Implementierung .NET frameworks nutzt nur standardisierte Funktionen des Protokolls. Die implizite TLS/SSL-Verschlüsselung wurde nie standardisiert. Es wurde nur als vorübergehende Mechanismus zu ermöglichen, mit nahtlosen Verschlüsselung mit FTP-clients nicht unterstützen Verschlüsselung. Im Allgemeinen gibt es keinen Grund für die Verwendung von implicit TLS/SSL-Verschlüsselung. Ein FTP server, unterstützt die implizite TLS/SSL-Verschlüsselung nur, ist kaputt, imo.
Trotzdem, wenn Sie brauchen, um die impliziten TLS/SSL-Verschlüsselung, verwenden Sie ein 3rd-party-FTP-Bibliothek.
Mit WinSCP .NET-assembly ist es ganz einfach:
Können Sie WinSCP GUI erzeugen eine C# - FTP-code-Vorlage, wie die oben, für Sie.
(Ich bin der Autor von WinSCP)
InformationsquelleAutor der Antwort Martin Prikryl
Können Sie auch versuchen,http://Ftp.dll FTP/FTPS client.
Unterstützt implizite und explizite SSL-verbindungen. Hier ist die implizite Beispiel:
Bitte beachten Sie, dass dies ein kommerzielles Produkt, und ich bin der Autor dieser Komponente.
InformationsquelleAutor der Antwort Pawel Lesnikowski
edtFTPnet/PRO ist ein FTP-client-Bibliothek, die auch FTPS unterstützt implizite und explizite Modi. Es ist einfach eine Frage der Angabe des richtigen Protokolls:
Derselben Komponente unterstützt SFTP auch.
Und ja, ich bin einer der Entwickler, der diese Komponente (und der edtFTPnet, die Kostenlose open-source .NET-FTP-client).
InformationsquelleAutor der Antwort Bruce Blackshaw