Is it possible to verify USERID and PASSWORD programmatically?

Document ID : KB000121347
Last Modified Date : 19/11/2018
Show Technical Document Details
Introduction:
This article describes the extent to which the USERID and PASSWORD can be verified programmatically in IDMS.
Question:
Is it possible to verify the USERID and PASSWORD programmatically in IDMS?
Environment:
CA IDMS, all supported releases.
Answer:
It is not possible to only check the validity of the USERID and PASSWORD.
However, the signon process can be conducted under the control of a user-written program.

Typically, an IDMS signon is handled by the SIGNON task code entered interactively by a user at the ENTER NEXT TASK CODE: prompt.

See the documentation on this command here:
https://docops.ca.com/ca-idms-ref/19/en/ca-idms-system-tasks-and-operator-commands/system-tasks/signon-system-task

Note particularly the part after the sub-heading "Supplying your password".
Users can enter the password on the same command as the SIGNON, or after hitting ENTER (in which case the entered password will not be visible).
If optional bit 220 is enabled in RHDCOPTF, then IDMS will enforce that the password must be entered after hitting ENTER, by ignoring the one entered on the same command as the SIGNON..

This process can be customized by invoking the process from an online ADS dialog or dc-cobol program.
This is done by invoking the system supplied program RHDCSNON, passing the provided userid and password and examining the return code.
The signon will be carried out as any other signon would be in the IDMS CV, according to the RESTYPE=SGON setting in your RHDCSRTT.

Documentation for linking to RHDCSNON is here:
https://docops.ca.com/ca-idms-ref/19/en/callable-services-reference/invoking-system-tasks-from-programs/invoking-the-signon-task-from-programs
The examples are in assembler but you can also call/link to it directly from ADS or cobol.

The ability to change the password provided by the interactive SIGNON task code is not available to a programmed call to RHDCSNON.
If you want to do that then you would need to use the #SECSGON macro in an assembler program.
That is documented here:
https://docops.ca.com/ca-idms/19/en/administrating/administrating-security-for-idms/syntax-for-assembler-macros/secsgo
Additional Information:
Applying Optional Functionality