Загрузка FTPS с изоляцией пользователя

Я настроил FTPS с изоляцией пользователя в IIS 7. Я пытаюсь загрузить файлы через FtpWebRequest в.NET в каталог определенного пользователя. Я предположил, что если бы я использовал учетные данные для User1 для подключения, он автоматически поместил бы файл в папку User1. Проблема в том, что файлы помещаются в мой веб-корень, а не в папку для контекстного пользователя.

У меня также есть FTP-сайт для веб-корня, поэтому я понимаю, почему он это делает. FTP веб-сайта работает на порту 21, но этот изолированный FTP-сайт пользователя находится на порту 990 (неявный TLS). Как я могу загрузить файлы прямо в папку пользователя? Использование пути не работает ([ipaddress]/user1), и я не могу добавить порт в URI. ([IPAddress]:990)

1 ответ

Я смог решить эту проблему с помощью AlexFTPS:

По сути, эта библиотека классов позволяет вам указать, что FTP-соединение должно использовать неявный TLS, тем самым используя порт 990 по умолчанию. В противном случае это не может быть указано в.NET (например, как часть имени хоста). Это позволило мне загрузить файл в определенный каталог пользователей на основе переданных учетных данных. Это также работает, если у вас есть стандартный FTP-сайт на порту 21.

Для основного кода...

AlexFTPSInstance.Connect (["FtpHost"], новый NetworkCredential(["FtpUsername"],["FtpPassword"]), ESSLSupportMode.CredentialsRequired | ESSLSupportMode.DataChannelRequested | ESSLSupportMode.Implicit;

client.PutFile (["LocalFileDirectory / LocalFileName"], ["ServerFileDirectory / ServerFileName"]);

AlexFTPS можно получить здесь - https://ftps.codeplex.com/

Другие вопросы по тегам