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

Responder a