ExternalDBase.UseProxy

From SunFlurry wiki
Revision as of 12:11, 8 June 2023 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  UseProxy (Задает прокси сервер для соединения)
Объект:Объект базы данных
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в строку, неверные аргументы
Визуальность:Нет

Функция настраивает прокси сервер для использования с соединением к данной внешней БД. Функция должна быть вызвана до фактического соединения с удаленной стороной на неактивном объекте, затем этот объект может использоваться совместно с функцией Connect. В данный момент поддерживаются только следующие типы прокси-соединений: NGRC, NGRCCHANNEL, остальные типы прокси будут выдавать исключение при попытке соединения.

Синтаксис

ExternalDBase.UseProxy(<Адрес и порт прокси сервера (STRING)>,<Тип прокси сервера (STRING)>,<Имя пользователя прокси (STRING)>,<Пароль пользователя прокси (STRING)>,<Дополнительные параметры прокси (STRING)>)

Аргументы

  • <Адрес и порт прокси сервера (STRING)> - Адрес прокси сервера задается в виде <Доменное имя сервера, адрес IPv4>:<Номер порта> (пример: 127.0.0.1:8080). На данный момент возможно подключение только с помощью IPv4. (необязательный аргумент) Для некоторых видов прокси (к примеру, SFSERVER), этот аргумент не используется и должен быть пропущен.
  • <Тип прокси сервера (STRING)> - Указание на тип используемого прокси сервера. Возможны следующие значения:
    • SOCKS4, SOCKS4A, SOCKS5, HTTP, HTTPS, SFSERVER -- Данные типы прокси серверов пока не поддерживаются при соединении к внешней БД.
    • NGRC, NGRCCHANNEL -- позволяет перенаправить TCP соединение через сервер ngRC или сервер перенаправления (каналов), к которому в свою очередь соединен сервер ngRC, отвечающий по именованному каналу. Использование прокси такого рода удобно, так как серверы ngRC могут использоваться в организации для удаленного администрирования сети. Сервер каналов ngRC позволяет использовать удаленное администрирование в случае, когда удаленный сервер не имеет постоянного входящего адреса IP. С помощью этого типа прокси программа может получить доступ к сервисам, находящимся в сети, единственный способ подключения к которой -- сервер ngRC. Поддерживаются как шифрованные соединения (соединения с ключами), так и не шифрованные соединения, как для прямых серверов ngRC, так и для серверов каналов ngRC. В прокси соединении будет отказано, пока на ngRC сервере в его утсановках или в установках соединяющегося ключа не будут разрешены адрес и порт перенаправления, к которым происходит соединение. Для соответствующих установок сервера, см. статью Установки сервера. Для установки соединения с прямыми серверами ngRC, необходимо корректно заполнить первый (адрес и порт сервера ngRC), третий (бинарный ключ соединения, если соединение шифрованное) и четвертый (пароль сервера ngRC) аргументы. Для установки соединения с сервером каналов ngRC, необходимо корректно заполнить первый (адрес и порт сервера каналов ngRC), третий (бинарный ключ соединения, если соединение шифрованное), четвертый (пароль сервера ngRC)и пятый (пароль сервера каналов и имя канала) аргументы. См. описание соответствующих аргументов.
  • <Имя пользователя прокси (STRING)> - (необязательный аргумент) В зависимости от типа прокси сервера, аргумент задает:
    • NGRC, NGRCCHANNEL: Если аргумент не задан или является пустой строкой, будет произведена попытка установки нешифрованного соединения с сервером ngRC (обычный порт сервера 37887), иначе задает ANSI строку с бинарным файлом ключа пользователя для установки шифрованного соединения (обычный порт сервера 37932).
  • <Пароль пользователя прокси (STRING)> - (необязательный аргумент) В зависимости от типа прокси сервера, аргумент задает:
    • NGRC, NGRCCHANNEL: пароль ngRC сервера.
  • <Дополнительные параметры прокси (STRING)> - (необязательный аргумент) Задает дополнительные параметры в зависимости от типа прокси-сервера. Возможны следующие значения аргумента:
    • Для NGRCCHANNEL прокси аргумент задает пароль сервера каналов и имя ngRC канала, к которому необходимо подключиться. Связка задается в виде: [<Пароль сервера каналов>]<Знак 1><Имя канала для подключения>. "Знак 1" представляет собой знак с кодом 1, который можно получить вызовом Chr(1).

Примеры

//Здесь дается пример ключа, кодированного в base64. Полный текст ключа не публикуется в примере.
стрКлюч:=DecodeString("cmNLYwA..................................................................................................."+
  "........................................................................................................................"+
  "........................................................................................................................"+
  "..............................AAAAAA==","base64");

db2:=exdb.create();
db2.UseProxy("someserver.ru:45556","NGRCCHANNEL",стрКлюч,"","ПарольОтСервераКаналов"+Chr(1)+"Наименование канала (клиента)");
db2.Connect("127.0.0.1:13521:ПарольОтБазыSF","Администратор","ПарольПользователяВБазе");

aEl:=db2.Ref.УсловияПродажИМаркетинговыеАкции;
If aEl.Find("Name","Запрет продаж алкоголя") Then
  Стр:=aEl.Условие;
  Message("Найдено условие для магазина "+aEl.Parent()+":","I");
  Message(Стр);
Else
  Message("Для магазина "+aEl.Parent()+" условие не найдено!","!");
EndIf;
db2.Disconnect;