Home

Page 202
Page 202
background image

Простые приемы работы с сетью

Это событие срабатывает каждый раз, когда пользователь подключается

к порту сервера, и нужно проверить корректность введенных имени пользо-
вателя и пароля. В качестве параметров в этот обработчик мы получаем сле-

дующие значения:

 имя пользователя, с которым подключается клиент;

 — пароль, который указал пользователь;

О Authenticated — если после выхода из процедуры мы установим это

свойство равным true, то пользователь сможет работать с сервером. Если
установить false, это будет означать, что пользователь не прошел аутен-

тификацию и мы отклонили соединение.

Далее используется функция

 Вы можете переписать эту функцию,

а можете использовать мой вариант. Функция возвращает домашнюю дирек-

торию подключаемого пользователя. Если она вернет пустую строку, то мы

должны отклонить соединение, потому что нельзя работать с
без указания директории. Но вы можете добавить возможность директории
по умолчанию, которая будет использоваться в тех случаях, когда не указано

другого значения.

Следующее

 НУЖНО Обработать, — OnChangeDirectory.

событие генерируется, когда пользователь пытается перейти в другую дирек-

торию. Вот код обработчика события:
procedure

 TObject;

Client:

 Directory: TFtpString; var Allowed: Boolean);

begin

if

 <

 then

Allowed := false

else

Allowed

 true;

if

 then

Allowed := false;

end;
Здесь происходит банальная проверка по длине пути. Если текущий путь
меньше директории, установленной по умолчанию для клиента, то пере-
менной Allow присваивается значение false, потому что нельзя поднимать-

ся выше уровня домашней директории. Например, если домашняя директо-
рия С:

 то путь С: \ оказывается меньше и на него переходить нельзя.

Эта проверка очень простая и сразу же предупреждаю, что она не защищен-

ная. Пользователь может написать такой путь:

 что позволит

ему подняться выше при том, что формально путь длиннее. Именно поэто-
му помимо измерения длины вы должны проверять наличие в пути точек.

Если точки присутствуют, то путь неверный, и нужно запретить переход


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.