Dart.Ftp 名前空間 : EncryptControl 列挙体 |
Public Enum EncryptControl Inherits System.Enum
public enum EncryptControl : System.Enum
メンバ | 解説 |
---|---|
Explicit | Loginメソッド内で、"AUTH TLS-P"、"AUTH TLS"、"SSL"をこの順に使用して暗号化がネゴシエートされます。 |
ExplicitSsl | 暗号化は、「AU TH SSL」(のみ)を使用してネゴシエートされます。 |
ExplicitTls | 暗号化は、「AUTH TLS」(のみ)を使用してネゴシエートされます。 |
ExplicitTlsC | 暗号化は、「AUTH TLS-C」(のみ)を使用してネゴシエートされます。 |
ExplicitTlsP | 暗号化は、「AUTH TLS-P」(のみ)を使用してネゴシエートされます。 |
Implicit | サーバーとのコントロール接続が確立された後ただちに暗号化がネゴシエートされます。 |
None | 暗号化は使用されません。 |
暗黙的なセキュリティでは、クライアントとサーバーの両方がセッション全体でSSLを使用するものと理解されています。 クライアントが接続を開始するとSSLハンドシェイクが実行され、それが成功した場合、以降そのセッションでセキュアな通信が行われます。 そのため、暗黙的なSSLでは通常、異なるポートを使用する必要があります(FTP SSLのウェルノウンポートは990)。
明示的なセキュリティでは、セキュアな通信は、プレーンテキストで予備的なネゴシエーションが行われた後にのみ実行されます。 クライアントはFTPサーバーに通常どおりウェルノウンポートの21を使用して接続し、クライアントが使用を望むセキュリティメカニズム(SSLなど)とともにAUTHコマンドを発行します。 サーバーがこのメカニズムをサポートしていて、その使用を了解した場合、以降そのセッションでセキュアな通信が行われます。
private void explicitLogin() { // 明示的なセキュリティを使用してサーバーに接続します。 ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer; ftp1.Session.Username = myUsername; ftp1.Session.Password = myPassword; ftp1.Session.Security.EncryptControl = EncryptControl.Explicit; ftp1.Session.Security.EncryptData = true; ftp1.Session.Security.ValidationCallback = remoteCertificateValidation; ftp1.Connect(); ftp1.Authenticate(); ftp1.List("", "", ListType.Full); ftp1.Close(); } private bool remoteCertificateValidation(Object sender, X509Certificate remoteCertificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { // このシンプルなデモでは、すべてのサーバー証明書を受け入れます。 return true; }
Private Sub explicitLogin() ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer ftp1.Session.Username = myUsername ftp1.Session.Password = myPassword ftp1.Session.Security.EncryptControl = EncryptControl.Explicit ftp1.Session.Security.EncryptData = True ftp1.Session.Security.ValidationCallback = AddressOf remoteCertificateValidation ftp1.Connect() ftp1.Authenticate() ftp1.List("", "", ListType.Full) ftp1.Close() End Sub Private Function remoteCertificateValidation(ByVal sender As Object, ByVal remoteCertificate As X509Certificate, _ ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean ' このシンプルなデモでは、すべてのサーバー証明書を受け入れます。 Return True End Function
System.Object
System.ValueType
System.Enum
Dart.Ftp.EncryptControl