Dart.Ftp 名前空間 > Ftp クラス > Authenticate メソッド : Authenticate(String,String) メソッド |
Public Overloads Function Authenticate( _ ByVal username As String, _ ByVal password As String _ ) As List(Of Response)
public List<Response> Authenticate( string username, string password )
指定された Session.Username と Session.Password を使用して Authenticateメソッドを呼び出します。
このメソッドと Authenticateメソッドは、Connect または Connect(String) の後に使用します。
Session.Security.EncryptionControl == EncryptionControl.Explicitの場合は、ログインする前にSSL暗号化がネゴシエートされます。
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