COM модуль агента |
|
Файл - tiagent.dll. Файл саморегистрирующийся, для регистрации можно использовать стандартные утилиты.
Имя класса - "tiagent.tiag", GUID - {C001210F-A524-435E-9CFA-17D45E6F7B38}.
Также имеется вариант этого класса для многопоточной реализации с поддержкой событий. Имя этого класса - "tiagent.tiag2", GUID - {C9883E71-7D0A-4AE6-B85A-643CECFC92E1}.
Описание интерфейса.
Все функции блокирующие. При их выполнении при ошибках могут быть вызваны исключения, а также для функций открытия соединения и запросов к серверу требуется проверка статуса ошибок (см. ниже).
( Pascal )
Полное описание интерфейса можно получить путем импорта библиотеки типов.
procedure OpenConnection(ProtoType: TProtoType; DestHost, UserName, Domain, Password: WideString; UseNTLM: WordBool);
Открыть соединение с сервером. Процедура Discavery будет выполнена автоматически.
ProtoType - Тип протокола. 0 - UDP, 1 - HTTP, 2 - SSL. Иначе протокол будет выбран в соответствии с рекомендациями сервера. Тип параметра описан в библиотеке типов модуля.
DestHost - IP адрес или имя сервера в сети. Если не задано, то будет выполнен автоматический поиск сервера.
UserNamе, Domain, Password - параметры аутентификации. UseNTLM - если не 0, то использовать NTLM. Если задано использовать NTLM, а Domain не задан, то используется текущий.
procedure PEOpenConnection;
Открыть соединение с сервером для PE режима. Параметров нет, используется только NTLM.
procedure CloseConnection(ClearData: WordBool);
Закрыть соединение с сервером. ClearData - очистить все данные, иначе очищаются только данные об ошибках.
function IsOpen: WordBool;
Возвращает состояние соединения.
property Timeout: Integer;
Свойство (запись, чтение) таймаута соединения в секундах. По умолчанию 5.
procedure DoDiscavery;
Выполняет функцию запроса Discavery. Функция OpenConnection делает это автоматически, эта же функция может потребоваться для повторного проведения этой процедуры.
procedure DoLogon;
Запрос на авторизацию.
procedure DoLogoff;
Запрос на отключение авторизации.
procedure ProcessData;
Запрос на чтение статуса клиента, состояние авторизации не меняется.
Следующие методы устанавливают дополнительные опции к запросу на смену параметров клиента. Это надо делать перед вызовами DoLogon или ProcessData. Опции очищаются при успешной отработке запроса или при закрытии соединения.
procedure ChangePassword(const NewPassword: WideString);
procedure ChangeFilterLevel(NewFilterLevel: Integer);
procedure ChangeCacheMode(NewMode: Integer);
property ClientVer: WideString;
Опция к запросу на сервер, позволяет передать ему версию клиента. По умолчанию берется из версии COM модуля.
Если в процессе выполнения соединения или запроса произошла ошибка, то может быть вызвано исключение, или выставляются коды ошибок, что может быть прочитано методами -
function Status: TResponseStatus;
Код выполнения операции. Тип данных описан в библиотеке типов модуля.
Status_None - статус неизвестен, операция не произведена.
Status_OK - запрос успешен.
Status_ServerReject - сервер отклонил запрос. Для уточнения смотрите ErrorCode, соответствует параметру Reason, описанному в HTTP протоколе авторизации.
Status_Timeout - таймаут соединения или выполнения запроса. Таймаут задается отдельным свойством.
Status_ServerNotFound - сервер не найден.
Status_ServerInaccessible - имя сервера в сети известно, но служба не отвечает;
Status_SocketError - ошибка сокета. Код ошибки в ErrorCode.
Status_SSPIError - ошибка подсистемы SSPI Windows.
Status_IncorrectServerData - с сервера получены некорректные данные.
Status_IncorrectServerVer - версия программы на сервере не совместима.
Status_HTTP - для протоколов HTTP/SSL сервер позвратил ошибку в HTTP ответе. Код ошибки в ErrorCode.
Status_ProtoNotSupported - протокол сервером не поддерживается. Может быть запрещен его настройками.
function ErrorCode: Integer;
См. функцию Status.
function ErrorText: WideString;
Дополнительная информация (сообщение) об ошибке.
Следующие данные доступны после выполнения запроса Discavery, они соответствуют параметрам, описанным в HTTP протоколе авторизации.
function ServerVer: WideString;
function ProxyPort: Integer;
function HTTPPort: Integer;
function SocksPort: Integer;
function SSLPort: Integer;
function RecomendedProtocol: integer;
function SSLHost: WideString;
function ServerIP: WideString;
function IsDiscavery: WordBool;
Возвращает true, если запрос Discavery был отработан.
Следующие данные доступны после выполнения запросов DoLogon и ProcessData, они соответствуют параметрам, описанным в HTTP протоколе авторизации.
function ServerTime: TDateTime;
function BlockState: Integer;
function BillState: Integer;
function Ballance: Double;
function Currency: WideString;
function TrafExclude: Double;
function BillTraffic0: Double;
function FilterLevel: Integer;
function FilterCurrLevel: Integer;
function CacheMode: Integer;
function CacheEnabled: WordBool;
function PassChangeEn: WordBool;
function ServiceMask: Integer;
function ProxyConf: WordBool;
function RefInterval: Integer;
function FXCaption(Index: Integer): WideString;
function CurrentLogonName: WideString;
function ServiceMask_EnableProxy: WordBool;
function ServiceMask_EnableWWWServ: WordBool;
function ClientActive: WordBool;
function GetMessagePopup(out Mess: WideString; out TimeSend: TDateTime; out TimeDeliv: TDateTime): WordBool;
Возвращает true, если после выполнения запросов DoLogon и ProcessData было получено сообщение. TimeSend - время отправки сообщения администратором, TimeDeliv - время его приема модулем. После вызова этого метода сообщение удаляется.
function RequestServerCert(ReqChain: WordBool; const DestHost: WideString): OleVariant;
Запрашивает серверные сертификаты. Может использоваться для установки у клиента сертификатов доверенных издателей (см. ReqChain = true).
ReqChain - если false, то запрашивается сертификат сервера (в формате X.509). Если true, то запрашивается набор сертификатов издательств (в формате PFX, пароль - пустой).
DestHost - имя хоста или IP адрес сервера. Если заранее неизвестно, то предварительно может быть получено процедурой Discavery.
Возвращает сертификат ввиде одномерного массива типа Byte.
Для C/C++ описание интерфейса аналогично, его можно получить путем импорта библиотеки типов.
Для класса tiagent.tiag2 имеются дополнительные методы -
procedure Cancel;
Все функции tiagent.tiag блокирующие. Если задан большой таймаут, то может потребоваться возможность эти запросы отменять. Для отмены запросов можно вызвать Cancel из другого потока.
function CancelHandle: Integer;
Возвращает Handle Event обьекта Windows. Для отмены запросов можно вызвать SetEvent для этого обьекта.
Для класса tiagent.tiag2 также имеется поддержка событий (интерфейс ITIAg2Events) .
procedure OnStatus(Status: Integer; Code: Integer; const Text: WideString);
Вызывается по завершению запроса.
procedure OnMessagePopup(const Mess: WideString; SendTime: TDateTime);
Вызывается, если было принято сообщение.
procedure OnDiscavery;
Вызывается по завершению процедуры Discavery.
Текущая страница справки: help.smart-soft.ru/index.html?sdkagentcom.htm