共用方式為


FtpWebRequest.EnableSsl 屬性

定義

取得或設定 Boolean,指定是否應使用 SSL 連線。

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 伺服器下載目錄清單。

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 = dynamic_cast<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 = dynamic_cast<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 = nullptr;
   StreamReader^ readStream = nullptr;
   responseStream = response->GetResponseStream();
   readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 );

   // Display the data received from the server.
   Console::WriteLine( readStream->ReadToEnd() );
   Console::WriteLine( "List status: {0}", response->StatusDescription );
   readStream->Close();
   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;
}
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 伺服器,您應該將 設定 EnableSsltrue

命令 "AUTH TLS" 會傳送至伺服器,以要求加密的會話。 如果伺服器無法辨識此命令,您會收到例外狀況 WebException

適用於

另請參閱