Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Вниз

SOAP   Найти похожие ветки 

 
Juri   (2008-04-11 15:20) [0]

Приветствыую Знатоков очень прошу помочь долго очень ищу решение данной роблемы.
если по порядку то:
1 создал WebService
2 к нему интрефейс и имплементацию интерфейса
вот в имвлементации мне нужно в одной из функций узнать каков IP клиента который выполняет данную функцию

дело в том что HTTPrequest уже там не доступен но я не могу поверить что нет возможности узнать IP клиента приславшего запрос на выполнение данной функции


 
Плохиш ©   (2008-04-11 16:28) [1]

Открываешь pas-файл, котором Delphi создала наследника TWebModule и создаёшь ему обработчик OnBeforeDispatch, туда передаётся TWebRequest.


 
Juri   (2008-04-11 17:16) [2]

и что дальше то это я прекрасно панимаю но как мне получить этот самый TWebRequest в function выполнение который запросил данный клиент? именно в этой функции мне нужен его IP


 
Плохиш ©   (2008-04-11 17:26) [3]


> Juri   (11.04.08 17:16) [2]
> и что дальше то это я прекрасно панимаю

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


 
Juri   (2008-04-11 17:35) [4]

я может от целого рабочего дня уже не соображаю но я не панимаю
смотрите я беру из TWebRequest IP сохраняю в переменную какую либо после чего идёт выполнение функции которую запросил выполнить клиент
в это время происходит конект от другого клиента который хочет выполнить ту же функцию я снова сохраняю уже IP нового клиента и? теперь в той переменной другой IP и тот первый клиент уже не при делах получается.... или к примеру сразу 10 конектов от каждого пусть сохраним IP куда то в Array но как потом понять где чей???


 
Плохиш ©   (2008-04-11 20:26) [5]

[3] можно использовать для cgi-приложений, т.к. там для каждого запроса запускается отдельный экземпляр веб-сервиса.

А в общем случае, подключаешь модуль WebBrokerSoap и с помощью функции GetSOAPWebModule получаешь веб-модуль ответственный за запрос.

Используешь, как-то так

 clientIP := (GetSOAPWebModule as TWebModule1).Request.RemoteAddr;

Попробуй, потом отпишешь, что получилось.

http://www.agnisoft.com/white_papers/advancedws/default.asp


 
Juri   (2008-04-14 15:34) [6]

Спасибо большое всё получилось


 
Juri   (2008-04-29 12:20) [7]

ещё раз спасибо за то что помогли в прошлый раз, но у меня появилась ещё одна проблемка. А именно SSL скомпилировал апаче модуль всё отлично работает по HTTP:// но стоит только попробовать по HTTPS:// получаю ошибку если перевести с немецкого что то вроде: "Служба сертификации недейстыительна или ошибочна". тут я даже не пойму в чём проблема так как в Helpe стоит что HTTPRIO поддерживает протокол HTTPS:// значит работать вс должно и если к примеру через файрфокс открыть страницу модуля что браузер сообщает что сертификат устарел и спрашивает действительно ли я хочу открыть данную страницу. отсюда я сделал вывод что HTTPRIO видимо проверяя сертификат выдаёт ошибку а том что он не действителен. Это конечно хорошо, но было бы лучше если бы после проверки спросив как файофокс хочу ли я дальше работать было бы возможным использовать мой сервис и с просроченным сертификатом.
Хотя возможно что я сделал ошибочные выводы, если это так прошу подсказать.
А если всё таки проблема в сертификате и никак не реализовать работу с просроченными сертификатами, подскажите как создать тестовый сертификат?


 
Плохиш ©   (2008-04-29 13:36) [8]


> Juri   (29.04.08 12:20) [7]

Это всё в настройках апача надо делать, приложение здесь не при чём.


 
Juri   (2008-04-29 13:47) [9]

ещё не пойму как заставить SOAP компонениы испльзовать Indy?


 
Juri   (2008-04-29 13:49) [10]


> Это всё в настройках апача надо делать, приложение здесь
> не при чём.

но браузеры же могут открывать страницу модуля если подтвердить что хочешь открыть страницу не смотря на то что сертификат устарел?


 
Плохиш ©   (2008-04-29 15:43) [11]


> Juri   (29.04.08 13:47) [9]
> ещё не пойму как заставить SOAP компонениы испльзовать Indy?

Зачем?

> Juri   (29.04.08 13:49) [10]
> но браузеры же могут открывать страницу модуля если подтвердить
> что хочешь открыть страницу не смотря на то что сертификат
> устарел?

И?
Веб-сервер, по запросу через защищённое соединение отправляет данные и сертификат. Браузер получает это, проверяет сертификат, если он просрочен выдаёт сообщение и при согласии пользователя, показывает данные. Никакого отношения всё это к тому, кто подготовил данные на стороне веб-сервера, не имеет.
Настраивай апач, вроде у них тулз какой-то был для генерации сертификатов.


 
Juri   (2008-04-29 15:54) [12]

я скачал Openssl.exe для генерации сертификатов сделал приватный сертификат теперь браузеры говорят что сертификат приватный и не проверен официально... но мой клиент по прежнему выдаёт ошибку "Служба сертификации недейстыительна или ошибочна"... продебагил клиента своего ошибка приходит из wininet.dll значит всё таки это сервер... вариант с покупкой рального сертификата меня не устраивает... незнаю что и делать... всё таки хотелось бы чтоб клиент наплевав на недействительность сертификата работал с модулем...


> > Juri   (29.04.08 13:47) [9] > ещё не пойму как заставить
> SOAP компонениы испльзовать Indy?Зачем?


увидел в Helpe что SOAP может использовать Indy а там есть IdSSLIOHandlerSocket в котором как я панимаю как раз можно осуществить работу даже с просроченым сертификатом


 
Juri   (2008-04-30 13:38) [13]

неужели невозможно чтоб HTTPRIO через https протокол работал даже с просроченым сертификатом


 
Juri   (2008-05-09 18:14) [14]

я нашёл всё таки... оказывается по умолчанию уже стоит такая настройка у компоненты это HTTPRIO.HTTPWebNode.InvokeOptions
там стоит как я сказал по умолчанию soIgnoreInvalidCerts:=true;
но несмотря на это я получаю ошибку "Служба сертификации недейстыительна или ошибочна"...
Очень прошу подскажите в чём проблема?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
2-1255649628
mm0
2009-10-16 03:33
2009.12.13
Фокус на главную форму


1-1228589526
Германн
2008-12-06 21:52
2009.12.13
BDE и bat-файлы


2-1256211022
snowkam
2009-10-22 15:30
2009.12.13
rак поменять разделитель


2-1256393458
Lamer6666
2009-10-24 18:10
2009.12.13
Работа с COM портом.


15-1255696143
Kostafey
2009-10-16 16:29
2009.12.13
SQL: Декартово произведение с произвольным множеством





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский