次の方法で共有


FtpWebRequest.EnableSsl プロパティ

定義

SSL 接続を使用する必要があるかどうかを指定する Boolean を取得または設定します。

public:
 property bool EnableSsl { bool get(); void set(bool value); };
public bool EnableSsl { get; set; }
member this.EnableSsl : bool with get, set
Public Property EnableSsl As Boolean

プロパティ値

制御およびデータの伝送が暗号化されている場合は true。それ以外の場合は false。 既定値は false です。

例外

FTP サーバーへの接続が既に確立されています。

次のコード例では、暗号化された接続を使用して、FTP サーバーからディレクトリ一覧をダウンロードします。

public static bool ListFilesOnServerSsl(Uri serverUri)
{
    // The serverUri should start with the ftp:// scheme.
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri);
    request.Method = WebRequestMethods.Ftp.ListDirectory;
    request.EnableSsl = true;

    // Get the ServicePoint object used for this request, and limit it to one connection.
    // In a real-world application you might use the default number of connections (2),
    // or select a value that works best for your application.

    ServicePoint sp = request.ServicePoint;
    Console.WriteLine("ServicePoint connections = {0}.", sp.ConnectionLimit);
    sp.ConnectionLimit = 1;

    FtpWebResponse response = (FtpWebResponse) request.GetResponse();
     Console.WriteLine("The content length is {0}", response.ContentLength);
    // The following streams are used to read the data returned from the server.
    Stream responseStream = null;
    StreamReader readStream = null;
    try
    {
        responseStream = response.GetResponseStream();
        readStream = new StreamReader(responseStream, System.Text.Encoding.UTF8);

        if (readStream != null)
        {
            // Display the data received from the server.
            Console.WriteLine(readStream.ReadToEnd());
        }
        Console.WriteLine("List status: {0}",response.StatusDescription);
    }
    finally
    {
        if (readStream != null)
        {
            readStream.Close();
        }
        if (response != null)
        {
            response.Close();
        }
    }

    Console.WriteLine("Banner message: {0}",
        response.BannerMessage);

    Console.WriteLine("Welcome message: {0}",
        response.WelcomeMessage);

    Console.WriteLine("Exit message: {0}",
        response.ExitMessage);
    return true;
}

注釈

注意事項

プロパティが EnableSsl でない true限り、ユーザー名とパスワード情報を含むすべてのデータとコマンドがクリア テキストでサーバーに送信されます。 ネットワーク トラフィックを監視しているすべてのユーザーは、自身の資格情報を確認し、それらを使用してサーバーに接続できます。 資格情報を必要とし、SSL をサポートする FTP サーバーに接続している場合は、 を に設定 EnableSsl する true必要があります。

コマンドは "AUTH TLS" 、暗号化されたセッションを要求するためにサーバーに送信されます。 サーバーでこのコマンドが認識されない場合は、例外が WebException 発生します。

適用対象

こちらもご覧ください