Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
1-1096917443
lipskiy
2004-10-04 23:17
2004.10.17
Как предотвратить "замерзание" проигрывания авишки в TAnimate


4-1095292610
Samowar
2004-09-16 03:56
2004.10.17
Процесс в памяти


3-1095410645
Koala
2004-09-17 12:44
2004.10.17
Вопрос по ХП


1-1096885823
Skywalker
2004-10-04 14:30
2004.10.17
Как обойти "Circular unit reference"?


6-1091837453
НовичОк
2004-08-07 04:10
2004.10.17
Блокировка рисунков в WebBrowser e




   Наверх