Intereting Posts
Как установить содержимое FlowLayoutPanel в Центр формы Лучшая Pratice для открытия нового windows в MVVM Light с параметрами Создайте плоский список всех формул формулы excel как предоставить функцию обратного вызова Dispatcher.BeginInvoke Практическое использование деревьев выражений Почему этот код F # так медленно? Как проверить, является ли строка в .NET числом или нет? Как получить дружественное имя устройства от DEV_BROADCAST_DEVICEINTERFACE и идентификатора экземпляра устройства Как получить имя пользователя с помощью проверки подлинности Windows в asp.net? Как повторить MIDI-файл в C #? Как привязать Dataset к DataGridView в приложении Windows Как отформатировать число в процентах без знака процента? Остановит ли оператор IF прекратить оценку, если он не прошел первое условие? Log4Net MemoryAppender, похоже, пропускает события с высокой скоростью записи Ошибка при использовании условной точки останова в System.Type

FTPS (FTP через SSL) в C #

Мне нужно какое-то руководство. Мне нужно разработать настраиваемый FTP в C #, который должен быть настроен с использованием файла App.Config. Кроме того, FTP должен выталкивать данные на любой сервер с любого клиента, снова зависит от файла конфигурации.

Я буду признателен, если кто-то может руководствоваться, если есть какой-либо API или любое другое полезное предложение, или переместите меня в правильном направлении.

Вы можете использовать FtpWebRequest ; однако это довольно низкий уровень. Существует class WebClient более высокого уровня, для которого требуется гораздо меньше кода для многих сценариев; однако он по умолчанию не поддерживает FTP / SSL. К счастью, вы можете заставить WebClient работать с FTP / SSL, зарегистрировав собственный префикс:

 private void RegisterFtps() { WebRequest.RegisterPrefix("ftps", new FtpsWebRequestCreator()); } private sealed class FtpsWebRequestCreator : IWebRequestCreate { public WebRequest Create(Uri uri) { FtpWebRequest webRequest = (FtpWebRequest)WebRequest.Create(uri.AbsoluteUri.Remove(3, 1)); // Removes the "s" in "ftps://". webRequest.EnableSsl = true; return webRequest; } } 

Как только вы это сделаете, вы можете использовать WebClient почти как обычно, за исключением того, что ваши URI начинаются с «ftps: //» вместо «ftp: //». Одно из предостережений заключается в том, что вы должны указать параметр method , поскольку его не будет по умолчанию. Например

 using (var webClient = new WebClient()) { // Note here that the second parameter can't be null. webClient.UploadFileAsync(uploadUri, WebRequestMethods.Ftp.UploadFile, fileName, state); } 

Мы используем edtFTPnet с хорошими результатами.