Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ну не пойму я никак, как сделать разрешение/запрет на соединение!


Aleksandr ©   (2003-04-11 18:22:00) 

Я только-только осваиваю MIDAS. Нужно мне, чтобы сервер допускал к связи только три компьютера с момента запуска. Соответственно, у него должен храниться список имен подключавшихся компьютеров, а клиент SocketConnection при коннекте должен передать имя компа и получить доступ/отказ к продолжению работы (первые три имени сервер должен куда-то себе занести, а при следующих коннектах допускать только те, которые внесены). Что тут нужно делать? Пытался через проперти формы сервера, так он вообще вешается при попытке что-либо туда передать на OnRemoteDataModuleCreate... В Инете поискал литературу - там либо самые азы ("положите компонент на форму"), либо не о том...


Набережных С.   (2003-04-14 18:29:00) [1]

>Aleksandr ©   (14.04.03 14:15)
Боюсь, что не правильно. Рассмотри такую ситуацию: клиента для твоего сервера пишет кто-то другой и просто проигнорирует существование твоего спецобъекта и сразу начнет работать с RemoteDataModule? Или я не так понял?
 Решение о предоставлении услуг должен принимать только сервер, используя собственные механизмы или опираясь на систему безопасности ОС. Клиент не должен иметь возможности на это влиять. А с точки зрения взаимодействия потоков ты поступил правильно, насколько можно судить не видя кода:) Загляни на RSDN, там есть несколько статей на тему COM, потоковых моделей и защиты.


Aleksandr   (2003-04-14 14:15:00) [2]

Скажите, насколько корректен и чем чреват такой подход:
я в том же модуле, где и RemoteDataModule, создал объект с единственным свойством - строкой, и критическую секцию, защищающую все обращения к этой строке. В разделе инициализации они создаются, в финализации уничтожаются. На OnLogin клиента я сделал функцию в Types Library, которая (для начала) заносит в упомянутый объект имя компьютера коннектящегося клиента либо ищет его в нем либо при количестве ";" выше двух отказывает в доступе. Правильно ли все это?


Aleksandr   (2003-04-14 13:38:00) [3]

Вы знаете, даже на Си не могу найти :(.


Набережных С.   (2003-04-13 09:35:00) [4]

IMHO самое простое: При подключении клиент получает объект с одним методом, который в ответ на корректное имя возвращает клиенту полнофункциональный объект, объявленный с ciInternal. Такой "идентифицирующий" объект может быть один для всех клиентов, однако боюсь, что для "только-только осваивающего MIDAS" даже это будет сложновато. Читай все, что найдешь, про COM и про потоковые модели. И учти, что все более-менее путное по этим вопросам ориентировано на Си.


Наверх

Титульная страница Поиск, карта сайта Написать письмо