The project of U-WA-
http://uwa.potetihouse.com/
戻る
TKFP.DLL   プログラミングTips

通信を暗号化する

.NET Framework 2.0専用
 TKFP.DLLで暗号化通信を利用るために必要なことは、FTPサーバーがFTP over SSL/TLSに対応していることと、 TKFP.NetFtpClientクラスで接続を行う前に、AuthenticationProtocolプロパティに使用する暗号化の方法を指定するだけです。
 ただし、FTPサーバーのSSL証明書によっては、独自の検証コードを追加する必要があります。次のサンプルでは、証明書の内容に関わらず全て受け入れています。 また、ルーターなどでグローバルアドレスとローカルアドレスを越える接続をする場合はデータコネクションのモードによっては接続できなくなることがあります。 詳しくは、「FTPサーバーへ接続出来る理由、出来ない理由」を参照してください。
C#.NET
public void Open()
{
    //接続情報
    string server = "ftp.example.jp";
    string userid = "userid";
    string pass = "pass";

    //ログオン用のクラスを作成
    TKFP.Net.IFtpLogon logon = new TKFP.Net.BasicFtpLogon(userid, pass);

    //FTPクライアントクラスの作成
    TKFP.Net.FtpClient ftp = new TKFP.Net.FtpClient(logon, server, 21);
    //SSLを使用します
    ftp.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Explicit_TLS ;
    //証明書に問題があった場合に独自の処理を追加します
    ftp.CertificateValidation += new TKFP.Net.CertificateValidationHandler(ftp_CertificateValidation);

    //接続開始
    if (ftp.Connect())
    {
        System.Windows.Forms.MessageBox.Show("接続成功");
        //FTPサーバーの情報をコンソールに出力します
        System.Console.WriteLine(ftp.SystemName);
    }
    else
    {
        System.Windows.Forms.MessageBox.Show("接続失敗");
    }

    //切断
    ftp.Close();
}

private void ftp_CertificateValidation(object sender, TKFP.Net.CertificateValidationArgs e)
{
    //全ての証明書を信用します
    e.Cancel = false;
}
VB.NET
Public Sub Open()
    '接続情報
    Dim server As String = "ftp.example.jp"
    Dim userid As String = "userid"
    Dim pass As String = "pass"

    'ログオン用のクラスを作成
    Dim logon As New TKFP.Net.BasicFtpLogon(userid, pass)

    'FTPクライアントクラスの作成
    Dim ftp As New TKFP.Net.FtpClient(logon, server, 21)
    'SSLを使用します
    ftp.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Explicit_TLS
    '証明書に問題があった場合に独自の処理を追加します
    AddHandler ftp.CertificateValidation, AddressOf ftp_CertificateValidation

    '接続開始
    If ftp.Connect() Then
        System.Windows.Forms.MessageBox.Show("接続成功")
        'FTPサーバーの情報をコンソールに出力します
        System.Console.WriteLine(ftp.SystemName)
    Else
        System.Windows.Forms.MessageBox.Show("接続失敗")
    End If

    '切断
    ftp.Close()
End Sub

Private Sub ftp_CertificateValidation(ByVal sender As Object, ByVal e As TKFP.Net.CertificateValidationArgs)
    '全ての証明書を信用します
    e.Cancel = False
End Sub
VB.NETのコードはC#.NETを元に「C#.NET to VB.NET Translator」によって作成したものです

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/