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
, все данные и команды, включая имя пользователя и пароль, отправляются на сервер в виде ясного текста. Любой пользователь, отслеживая сетевой трафик, может просматривать ваши учетные данные и использовать их для подключения к серверу. При подключении к FTP-серверу, который требует учетных данных и поддерживает ПРОТОКОЛ SSL, следует задать для значение EnableSsltrue
.
Команда "AUTH TLS"
отправляется на сервер для запроса зашифрованного сеанса. Если сервер не распознает эту команду, вы получите WebException исключение.