События



OnAuthentication(AUserName, APassword as String; ByRef AIsOK as Variant)

OnAuthentication вызывается, когда клиент подключается к серверу.

Вы должны проверить в нем имя пользователя и пароль.

Если вернуть в AIsOK True, то клиенту будет разрешено подключиться,

иначе клиент получит ошибку "Ошибка подключения".

ЗАМЕТЬТЕ: в демонстрационной версии результат этого события игнорируется

и любой клиент имеет право на подключение. Будьте осторожны!

OnRequestObject(AObjectIDString as String; ByRef AResult as Variant)

OnRequestObject вызывается, когда подключенный клиент запрашивает

объект, определенный аргументом AProgID. Если это событие

возвращает NULL в аргументе AResult, значит объект будет

создан автоматически при помощи системной функции CoCreateInstance

и при удачном создании объект будет передан клиенту.

Для запрета создания объекта, определенного аргументом AProgID вы

должны вернуть строку с описанием ошибки, которую впоследствии

получит вместо объекта клиент (на стороне клиента будет сгенерировано

исключение с указанной строкой).

ЗАМЕТЬТЕ: в демонстрационной версии результат этого события

игнорируется. Клиенту будет передан любой запрошенный объект!

Также, поскольку это событие игнорируется, у вас нет возможности

передать клиенту ваш внутренний объект, а только зарегистрированный

в системе. Также у вас нет возможности контролировать запросы объектов!

Будьте осторожны! В зарегистрированной версии этих ограничений нет!

 

Пример реализации событий для VBScript:

 

'Определение обработчиков событий сервера:

 

'OnAuthentication вызывается, когда клиент подключается к серверу.

'Вы должны проверить в нем имя пользователя и пароль.

'Если вернуть в AIsOK True, то клиенту будет разрешено подключиться,

'иначе клиент получит ошибку "Ошибка подключения".

'ЗАМЕТЬТЕ: в демонстрационной версии результат этого события игнорируется

'и любой клиент имеет право на подключение. Будьте осторожны!

 

Function RPCServer_OnAuthentication(AUserName, APassword, ByRef AIsOK)

 

    WScript.Echo "RPCServer_OnAuthentication: " & AUserName & ", " & APassword

 

    If (AUserName = "RoutixUser") And (APassword = "Secret") Then

        AIsOK = True

    Else

        AIsOK = False

    End If

 

End Function

 

 

'OnRequestObject вызывается, когда подключенный клиент запрашивает

'объект, определенный аргументом AProgID. Если это событие

'возвращает NULL в аргументе AResult, значит объект будет

'создан автоматически при помощи системной функции CoCreateInstance

'и при удачном создании объект будет передан клиенту.

'Для запрета создания объекта, определенного аргументом AProgID вы

'должны вернуть строку с описанием ошибки, которую впоследствии

'получит вместо объекта клиент (на стороне клиента будет сгенерировано 

'исключение с указанной строкой).

'ЗАМЕТЬТЕ: в демонстрационной версии результат этого события

'игнорируется. Клиенту будет передан любой запрошенный объект!

'Также, поскольку это событие игнорируется, у вас нет возможности

'передать клиенту ваш внутренний объект, а только зарегистрированный

'в системе. Также у вас нет возможности контролировать запросы объектов!

'Будьте осторожны! В зарегистрированной версии этих ограничений нет!

 

Function RPCServer_OnRequestObject(AProgID, ByRef AResult)

    

    WScript.Echo "RPCServer_OnRequestObject: " & AProgID

    If (AProgID = "WScript.Shell") Then

      'Если вернуть NULL - RPC-сервер попытается создать объект

      'автоматически с помощью CoCreateInstance и вернуть его клиенту.

        AResult = NULL

    ElseIf (AProgID = "FSysObj") Then

        'также, проанализировав идентификатор объекта вы можете

        'самостоятельно создать нужный объект и вернуть его клиенту.

        Set AResult = WScript.CreateObject("Scripting.FileSystemObject")

    Else

        'Также вы можете запретить создавать какой-то объект(ы).

        'Для этого верните строку с описанием ошибки для клиента.

        AResult = "Доступ запрещен для объекта " & AProgID

    End If

 

End Function