GrapeCity Secure FTP for .NET 4.0J
Authenticate(String,String) メソッド
使用例 

ログインに使用するユーザー名。
ログインに使用するパスワード。
ユーザー名、パスワード、その他のSessionに含まれる設定を使用してFTPサーバーにログインします。
シンタックス
Public Overloads Function Authenticate( _
   ByVal username As String, _
   ByVal password As String _
) As List(Of Response)
public List<Response> Authenticate( 
   string username,
   string password
)

パラメータ

username
ログインに使用するユーザー名。
password
ログインに使用するパスワード。

戻り値の型

生成されたResponseオブジェクトのList。
解説

指定された Session.UsernameSession.Password を使用して Authenticateメソッドを呼び出します。

このメソッドと Authenticateメソッドは、Connect または Connect(String) の後に使用します。

Session.Security.EncryptionControl == EncryptionControl.Explicitの場合は、ログインする前にSSL暗号化がネゴシエートされます。

使用例
次のサンプルは、FTPサーバーへの接続と暗号化オプション(FTPS: Explicit/Implicit)を使用してユーザー認証を行う方法を示します。
using System.Security.Cryptography.X509Certificates;
using System.Security.Authentication;
using System.Net.Security;

/// <summary>
/// FTPサーバーに接続して、暗号化オプション(FTPS: Explicit/Implicit)を使用してユーザー認証を行います。
/// </summary>
/// <param name="myFtp">FTPサーバーへの接続と認証を行う Ftpコントロールのインスタンス</param>
/// <param name="hostNameOrAddress">FTPサーバーのホスト名またはIPアドレス</param>
/// <param name="port">FTPサーバーが接続待機しているポート番号。Explicitモードまたは SSL接続を使用しない場合は通常は21番、Implicitモードの場合は 990番が使用されます。</param>
/// <param name="username">ユーザー名</param>
/// <param name="password">パスワード</param>
/// <param name="encryptControl">SSL/TLS を使用するかどうかを設定します。</param>
/// <param name="encryptData">データ接続を暗号化するかどうかを設定します。</param>
private void ConnectFtp(Ftp myFtp, string hostNameOrAddress, int port, string username, string password, EncryptControl encryptControl, bool encryptData)
{
    //接続するFTPサーバーのアドレスを設定します
    myFtp.Session.RemoteEndPoint = new IPEndPoint(hostNameOrAddress, port);

    if (encryptControl != EncryptControl.None)
    {
        //コントロール接続の暗号化方法を設定します
        myFtp.Session.Security.EncryptControl = encryptControl;

        //データ接続を暗号化するかどうかを設定します。接続するFTPサーバーによってはこの設定が必要な場合、または必要ない場合があります。
        myFtp.Session.Security.EncryptData = encryptData;

        //オプションとして SSL/TLSネゴシエーションで使用するプロトコルを設定します。デフォルトは SslProtocolsです。
        //TLS 1.1/1.2 を使用する場合は、.NET Framework 4.5以上が必要です。SslProtocolsの詳細は MSDN をご参照ください。
        myFtp.Session.Security.Protocols = SslProtocols.Tls | SslProtocols.Ssl3;

        //サーバーのSSL証明書を検証する際に呼び出されるコールバック・メソッドを指定します。
        myFtp.Session.Security.ValidationCallback = remoteCertificateValidation;
    }

    //FTPサーバーに接続します
    myFtp.Connect();

    //ユーザーを認証します
    myFtp.Authenticate(username, password);
}

private bool remoteCertificateValidation(Object sender, X509Certificate remoteCertificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
    //SSL証明書の検証を行わず、すべての証明書に対してTrue(問題なし)を返します。
    //SSL証明書の検証方法の詳細については、MSDNの System.Net.Security.RemoteCertificateValidationCallback をご参照ください。
    return true;
}
Imports System.Security.Cryptography.X509Certificates
Imports System.Security.Authentication
Imports System.Net.Security

''' <summary>
''' FTPサーバーに接続して、暗号化オプション(FTPS: Explicit/Implicit)を使用してユーザー認証を行います。
''' </summary>
''' <param name="myFtp">FTPサーバーへの接続と認証を行う Ftpコントロールのインスタンス</param>
''' <param name="hostNameOrAddress">FTPサーバーのホスト名またはIPアドレス</param>
''' <param name="port">FTPサーバーが接続待機しているポート番号。Explicitモードまたは SSL接続を使用しない場合は通常は21番、Implicitモードの場合は 990番が使用されます。</param>
''' <param name="username">ユーザー名</param>
''' <param name="password">パスワード</param>
''' <param name="encryptControl">SSL/TLS を使用するかどうかを設定します。</param>
''' <param name="encryptData">データ接続を暗号化するかどうかを設定します。</param>
Private Sub ConnectFtp(ByVal myFtp As Ftp, ByVal hostNameOrAddress As String, ByVal port As Integer, ByVal username As String, ByVal password As String, ByVal encryptControl As EncryptControl, ByVal encryptData As Boolean)
    '接続するFTPサーバーのアドレスを設定します
    myFtp.Session.RemoteEndPoint = New IPEndPoint(hostNameOrAddress, port)

    If encryptControl <> Dart.Ftp.EncryptControl.None Then
        'コントロール接続の暗号化方法を設定します - Implicit/Explicit
        myFtp.Session.Security.EncryptControl = encryptControl

        'データ接続を暗号化するかどうかを設定します。接続するFTPサーバーによってはこの設定が必要な場合、または必要ない場合があります。
        myFtp.Session.Security.EncryptData = encryptData

        'オプションとして SSL/TLSネゴシエーションで使用するプロトコルを設定します。デフォルトは SslProtocolsです。
        'TLS 1.1/1.2 を使用する場合は、.NET Framework 4.5以上が必要です。SslProtocolsの詳細は MSDN をご参照ください。
        myFtp.Session.Security.Protocols = SslProtocols.Tls Or SslProtocols.Ssl3

        'サーバーのSSL証明書を検証する際に呼び出されるコールバック・メソッドを指定します。
        myFtp.Session.Security.ValidationCallback = AddressOf remoteCertificateValidation
    End If

    'FTPサーバーに接続します
    myFtp.Connect()

    'ユーザーを認証します
    myFtp.Authenticate(username, password)
End Sub

Private Function remoteCertificateValidation(ByVal sender As Object, ByVal remoteCertificate As X509Certificate, ByVal chain As X509Chain, ByVal sslPolicyErrors As SslPolicyErrors) As Boolean
    'SSL証明書の検証を行わず、すべての証明書に対してTrue(問題なし)を返します。
    'SSL証明書の検証方法の詳細については、MSDNの System.Net.Security.RemoteCertificateValidationCallback をご参照ください。
    Return True
End Function
参照

関連項目

Ftp クラス
Ftp メンバ
オーバーロード一覧

 

 


© 2002, GrapeCity inc. All rights reserved.