Форум: "Corba";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
ВнизНу не пойму я никак, как сделать разрешение/запрет на соединение! Найти похожие ветки
← →
Aleksandr © (2003-04-11 18:22) [0]Я только-только осваиваю MIDAS. Нужно мне, чтобы сервер допускал к связи только три компьютера с момента запуска. Соответственно, у него должен храниться список имен подключавшихся компьютеров, а клиент SocketConnection при коннекте должен передать имя компа и получить доступ/отказ к продолжению работы (первые три имени сервер должен куда-то себе занести, а при следующих коннектах допускать только те, которые внесены). Что тут нужно делать? Пытался через проперти формы сервера, так он вообще вешается при попытке что-либо туда передать на OnRemoteDataModuleCreate... В Инете поискал литературу - там либо самые азы ("положите компонент на форму"), либо не о том...
← →
Набережных С. (2003-04-13 09:35) [1]IMHO самое простое: При подключении клиент получает объект с одним методом, который в ответ на корректное имя возвращает клиенту полнофункциональный объект, объявленный с ciInternal. Такой "идентифицирующий" объект может быть один для всех клиентов, однако боюсь, что для "только-только осваивающего MIDAS" даже это будет сложновато. Читай все, что найдешь, про COM и про потоковые модели. И учти, что все более-менее путное по этим вопросам ориентировано на Си.
← →
Aleksandr © (2003-04-14 13:38) [2]Вы знаете, даже на Си не могу найти :(.
← →
Aleksandr © (2003-04-14 14:15) [3]Скажите, насколько корректен и чем чреват такой подход:
я в том же модуле, где и RemoteDataModule, создал объект с единственным свойством - строкой, и критическую секцию, защищающую все обращения к этой строке. В разделе инициализации они создаются, в финализации уничтожаются. На OnLogin клиента я сделал функцию в Types Library, которая (для начала) заносит в упомянутый объект имя компьютера коннектящегося клиента либо ищет его в нем либо при количестве ";" выше двух отказывает в доступе. Правильно ли все это?
← →
Набережных С. (2003-04-14 18:29) [4]>Aleksandr © (14.04.03 14:15)
Боюсь, что не правильно. Рассмотри такую ситуацию: клиента для твоего сервера пишет кто-то другой и просто проигнорирует существование твоего спецобъекта и сразу начнет работать с RemoteDataModule? Или я не так понял?
Решение о предоставлении услуг должен принимать только сервер, используя собственные механизмы или опираясь на систему безопасности ОС. Клиент не должен иметь возможности на это влиять. А с точки зрения взаимодействия потоков ты поступил правильно, насколько можно судить не видя кода:) Загляни на RSDN, там есть несколько статей на тему COM, потоковых моделей и защиты.
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c