GrapeCity Secure FTP for .NET 4.0J
EncryptControl 列挙体
使用例 使用例 

コントロール接続の暗号化を指定するために有効な値を列挙します。
シンタックス
Public Enum EncryptControl 
   Inherits System.Enum
public enum EncryptControl : System.Enum 
メンバ
メンバ解説
ExplicitLoginメソッド内で、"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コマンドを発行します。 サーバーがこのメカニズムをサポートしていて、その使用を了解した場合、以降そのセッションでセキュアな通信が行われます。

使用例
以下のサンプルコードは、明示的なセキュリティを使用してFTPサーバーにログインする方法を示します。 explcicitLogin関数は、Ftp.Startメソッドに渡して非同期に実行できます。
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

参照

関連項目

Dart.Ftp 名前空間

 

 


© 2002, GrapeCity inc. All rights reserved.