Intereting Posts
Как создать объединение ресурсов во время выполнения? Обнаружение защищенного паролем документа Как запросить файл excel в C # с помощью детального запроса Получить группы из OU с помощью DirectoryServices.AccountManagement Ошибка повторной маршрутизации asp.net Core с Ocelot (7.0.4) Как настроить пользовательские заголовки при использовании IHttpActionResult? JsonConvert.SerializeObject всегда возвращает {} в XamarinForms TextBox Для рендеринга HTML с префиксом в атрибуте ID Linq получает сумму группы данных по дате Прогноз данных в платформе Entity Framework и Automapper Какова полезность публичных конструкторов в абстрактных classах в C #? Сделайте ReSharper своим предпочтением для кодового заказа Как изменить язык во время выполнения без проблем с раскладкой Использование LINQ. С двумя разными списками. Как я могу идентифицировать объекты, которые не соответствуют Где следует выбирать логику выбора в ASP.NET MVC, представлении, модели или controllerе?

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 с хорошими результатами.