An object reference to a Progress.Lang.OERequestInfo class that provides information about a client request sent from this ABL session to an AppServer.
Data type: Progress.Lang.OERequestInfo class
Access: Read-only
Applies to: Server object handle, Asynchronous request object handle
The following code fragment retrieves the default client context identifier (CCID) that the AVM generates when you create a server object handle:
DEFINE VARIABLE hAppSrv AS HANDLE NO-UNDO. DEFINE VARIABLE ccid AS CHARACTER NO-UNDO. CREATE SERVER hAppSrv. ccid = hAppSrv:REQUEST-INFO:ClientContextId. |
You can also access this attribute using the SELF system handle inside an ABL event procedure that runs when an associated asynchronous remote procedure completes.
The following code fragment defines an event procedure (AsynReqIsDone) that you might use to access this attribute in response to an asynchronous remote procedure call:
DEFINE VARIABLE ccid AS CHARACTER NO-UNDO. /* Assume that this procedure has been specified as the event procedure */ /* for an asynchronous remote procedure call */ PROCEDURE AsyncRqIsDone: ccid = SELF:REQUEST-INFO:ClientContextId. DELETE OBJECT SELF. END. |
This event procedure accesses the CCID that was sent to the AppServer along with the asynchronous request and assigns the value to the ccid variable defined in the enclosing external procedure.
The bold code in the following fragment shows setting a client principal in a server's OERequestInfo instance:
DEFINE VARIABLE hAppSrv AS HANDLE. DEFINE VARIABLE hCPIn AS HANDLE. DEFINE VARIABLE hCPOut AS HANDLE. DEFINE VARIABLE ccid AS CHARACTER. DEFINE VARIABLE bOK AS LOGICAL. DEFINE VARIABLE loginState AS CHARACTER. CREATE SERVER hAppSrv. ccid = hAppSrv:REQUEST-INFO:clientContextID. CREATE CLIENT-PRINCIPAL hCPIn. hCPIn:INITIALIZE("userName@domainName", ccid, ?, "password"). hAppSrv:REQUEST-INFO:SetClientPrincipal(hCPIn). bOK = hAppSrv:CONNECT("-URL AppServerDC://asHost:asPort/svc"). hCPOut = hAppSrv:RESPONSE-INFO:GetClientPrincipal(). IF VALID-HANDLE(hCPOut) THEN loginState = hCPOut:LOGIN-STATE. ELSE loginState = ?. . . . IF VALID-HANDLE(hCPOut) THEN DELETE OBJECT hCPOut. |