Hola Jesus
Mira a ver si este programa te sirve.
Saludos
Fernando Martinez
-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]En nombre de Jesus Arzak
Enviado el: mi�rcoles, 20 de noviembre de 2002 11:44
Para: [EMAIL PROTECTED]
Asunto: Cambiar un Usuario por Otro
Hola a todos,
Os expongo el problema. Necesito que un usuario se autentifique en el AS400
y de
alguna manera pueda decirle que es otro a todos los efectos, no so lo a
nivel de
autorizaciones.
Necesito que esto sea asi porque quiero que funcione en la rutina normal de
ejecucion, que entre los multiples programas, se incluyen sentencias del
tipo
RTVJOBA USER(&USUARIO).
Lo que pretendo hacer es como simular que un usuario entra en mi maquina,
hace
signoff y seguidamente entra con otro usuario generico.
He probado a utilizar las API'S QSYGETPH y QWTSETP pero no me funciona. Hay
alguien que me pueda decir si existe alguna manera de hacerlo.
Un saludo,
Jesus M� Arzak Capilla
Talleres de Escoriaza,S.A.
Dpto Proceso de Datos
www.tesa.es
ADVERTENCIA/WARNING
ESTE CORREO ELECTRONICO CONTIENE INFORMACION PRIVADA Y
ESTRICTAMENTE CONFIDENCIAL. Si usted no es el destinatario del
presente mensaje no esta autorizado a leerlo, retenerlo o difundirlo.
THIS E-MAIL IS PRIVILEGED, CONFIDENTIAL AND CONTAINS PRIVATE
INFORMATION. Any reading, retention, distribution or copying of this
communication by any person other than its intended recipient is prohibited.
_____________________________________________________
Forum.HELP400 es un servicio m�s de NEWS/400.
� Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja, env�a el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]?body=LEAVE
/*********************************************************************/
/* */
/* Create as user with *ALLOBJ and *SECADM */
/* CRTCLPGM PGM(lib/SWAP) USRPRF(*OWNER) AUT(*EXCLUDE) */
/* */
/* */
/* PURPOSE: SWAP -- This program will swap the user profile of */
/* a job but prevents swap to a user profile */
/* the with *ALLOBJ *SERVICE *SECADM OR *SPLCTL */
/* special authority */
/*********************************************************************/
RESETPWD: PGM (&USERID)
DCL &USERID *CHAR 10
/*********************************************************/
/* Variables for API to retrieve user profile attributes */
/*********************************************************/
DCL &RTNDTA *CHAR 83
/***********************************************/
/* API work area USRI0200 data returned */
/***********************************************/
/* Type Field */
/* 1 BINARY(4) Bytes returned */
/* 5 BINARY(4) Bytes available */
/* 9 CHAR(10) User profile name */
/* 19 CHAR(10) User class name */
/* 29 CHAR(15) Special authority */
/* 29 CHAR(1 ) ALLOBJ */
/* 30 CHAR(1 ) SECADM */
/* 31 CHAR(1 ) JOBCTL */
/* 32 CHAR(1 ) SPLCTL */
/* 33 CHAR(1 ) SAVSYS */
/* 34 CHAR(1 ) SERVICE */
/* 35 CHAR(1 ) AUDIT */
/* 36 CHAR(1 ) IOSYSCFG */
/* 38 CHAR(7 ) future expansion */
/* 44 CHAR(10) Group profile name */
/* 54 CHAR(10) Owner */
/* 64 CHAR(10) Group authority name */
/* 74 CHAR(10) Limit capabilities */
/***********************************************/
DCL &OUTVARD *DEC (5 0) VALUE(83)
DCL &OUTLEN *CHAR 4
DCL &FMT *CHAR 8 VALUE(USRI0200)
DCL &ERRCDE *CHAR 80
DCL &ERRLEND *DEC (5 0) VALUE(80)
DCL &HANDLE *CHAR 12
/******************************************************/
/* Retrieve the special authority of the user profile */
/* Do not allow reset if user has special authority */
/* *ALLOBJ *SECADM *SPLCTL or *SERVICE */
/******************************************************/
CHGVAR VAR(%BIN(&OUTLEN)) VALUE(&OUTVARD)
CHGVAR VAR(%BIN(&ERRCDE 1 4)) VALUE(&ERRLEND)
CALL QSYRUSRI +
(&RTNDTA &OUTLEN &FMT &USERID &ERRCDE)
IF ( (%SST(&RTNDTA 29 1 )='Y') *OR /*check *ALLOBJ*/ +
(%SST(&RTNDTA 30 1 )='Y') *OR /*check *SECADM*/ +
(%SST(&RTNDTA 32 1 )='Y') *OR /*check *SPLCTL*/ +
(%SST(&RTNDTA 34 1 )='Y')) DO /*check *SERVICE */
SNDPGMMSG MSGID(CPF9801) MSGTYPE(*ESCAPE) +
MSGDTA('Swap of this user profile not allowed.')
ENDDO
/************************************************************/
/* Swap user profile */
/************************************************************/
/* CALL QSYGETPH (&USER '*NOPWD' &HANDLE) */
CALL QSYGETPH (&USERID '*NOPWD' &HANDLE)
CALL QWTSETP ( &HANDLE)
CALL QSYRLSPH ( &HANDLE)
ENDPGM