Set_Conversation_Security_Type (CPI-C)
El programa de invocación emite la Set_Conversation_Security_Type llamada (cmscst) de nombre de función para especificar la información que requiere la unidad lógica de asociado (LU) para validar el acceso al programa invocado.
Sintaxis
CM_ENTRY Set_Conversation_Security_Type(
unsigned char FAR *conversation_ID,
CM_INT32 FAR *conversation_security_type,
CM_INT32 FAR *return_code
);
Parámetros
conversation_ID
Parámetro proporcionado. Especifica el identificador de la conversación. El valor de este parámetro lo devolvió Initialize_Conversation.
conversation_security_type
Parámetro proporcionado. Especifica la información que requiere la LU del asociado para validar el acceso al programa invocado. En función de la seguridad de conversación establecida para el programa invocado durante la configuración, use uno de los valores siguientes:
CM_SECURITY_NONE
Para indicar que el programa invocado no usa ninguna seguridad de conversación.
CM_SECURITY_PROGRAM
Para indicar que el programa invocado usa la seguridad de la conversación y, por tanto, requiere un identificador de usuario y una contraseña.
CM_SECURITY_SAME
Para indicar que el identificador de usuario se envía en la solicitud de asignación a los servicios de nodo en la LU del asociado. Esta configuración también se usa para especificar que el programa invocado, invocado con un identificador de usuario y una contraseña válidos, a su vez invoca otro programa (como se muestra en Comunicación entre CSP). Por ejemplo, suponga que el programa A invoca el programa B con un identificador de usuario y una contraseña válidos, y el programa B a su vez invoca el programa C. Si el programa B especifica el valor CM_SECURITY_SAME, CPI-C enviará la LU para el programa C, el identificador de usuario del programa A y un indicador ya comprobado. Este indicador indica al programa C que no requiera la contraseña (si el programa C está configurado para aceptar un indicador ya comprobado).
Cuando se usa CM_SECURITY_SAME, la aplicación siempre debe llamar a Set_Conversation_Security_User_ID y Set_Conversation_Security_Password para proporcionar valores para los parámetros security_user_ID y security_password . Según las propiedades negociadas entre SNA Server y la LU del mismo nivel, la función Allocate enviará uno de los tres tipos de mensajes Attach (FMH-5), en este orden de prioridad:
Si las LU ya han negociado la seguridad comprobada, la asociación enviada por el servidor SNA no incluirá el contenido del campo de parámetro de security_password especificado por Set_Conversation_Security_Password.
Si las LU han negociado la seguridad de comprobación persistente, la asociación enviada por el servidor SNA incluirá el parámetro security_password especificado por Set_Conversation_Security_Password, pero solo cuando Attach es el primero para el parámetro de security_user_ID especificado establecido por Set_Conversation_Security_User_ID desde el inicio de la sesión lu-LU y omitirá el parámetro security_password en todos los adjuntos posteriores (emitidos por la aplicación o cualquier otra aplicación mediante el uso de . este triplet en modo LU-LU).
La aplicación no puede saber qué modo de seguridad se ha negociado entre las LU, ni puede indicar si la función Allocate que está emitiendo es la primera para ese triplet en modo LU-LU. Por lo tanto, la aplicación siempre debe llamar a Set_Conversation_Security_User_ID y Set_Conversation_Security_Password para establecer los parámetros de security_user_ID y security_password cuando se establece conversation_security_type en CM_SECURITY_SAME.
Para obtener más información sobre la comprobación persistente y la seguridad ya comprobada, consulte la Guía de formatos de SNA, sección "Fm Header 5: Attach (LU 6.2)."
Si se va a usar la característica de inicio de sesión automático CPI-C, este parámetro debe establecerse en CM_SECURITY_PROGRAM. Para obtener más información, vea la sección Comentarios más adelante en este tema.
return_code
Código devuelto de esta llamada. Los códigos de retorno válidos se enumeran más adelante en este tema.
Códigos de retorno
CM_OK
Código de retorno principal; la llamada se ejecutó correctamente.
CM_PROGRAM_STATE_CHECK
Código de retorno principal; la conversación no está en estado INITIALIZE.
CM_PROGRAM_PARAMETER_CHECK
Código de retorno principal; el valor especificado por conversation_ID o conversation_security_type no es válido.
CM_PRODUCT_SPECIFIC_ERROR
Código de retorno principal; se produjo un error específico del producto y se ha registrado en el registro de errores de productos.
Cambios de estado
La conversación debe estar en estado INITIALIZE.
No hay ningún cambio de estado.
Comentarios
Esta llamada invalida el tipo de seguridad inicial de la información lateral especificada por Initialize_Conversation. Esta llamada no se puede emitir después de que se haya emitido Allocate .
Si el tipo de seguridad de conversación se establece en CM_SECURITY_NONE, el identificador de usuario y la contraseña se omiten cuando se asigna la conversación.
Un tipo de seguridad de conversación de CM_SECURITY_SAME está pensado para su uso entre nodos que tienen el mismo conjunto de identificadores de usuario y que aceptan la validación del usuario realizada en un nodo como validación del usuario para todos los nodos. En este caso, no se usa una contraseña, excepto la validación inicial del identificador de usuario.
El inicio de sesión automático para aplicaciones CPI-C es compatible con Host Integration Server. Esta característica requiere una configuración específica por parte del administrador de red. La aplicación CPI-C debe invocarse en el lado LAN desde un cliente del servidor SNA. El cliente debe iniciar sesión en un dominio de Microsoft Windows, pero puede ser cualquier plataforma que admita las API CPI-C del servidor SNA.
La aplicación cliente se codifica para usar la seguridad de nivel de programa, con un nombre de usuario CPI-C especial codificado de forma rígida MS$SAME y la contraseña MS$SAME. Cuando esta asignación de sesión fluye desde el cliente al servidor SNA, el servidor SNA busca la cuenta de host y la contraseña correspondientes a la cuenta de Windows en la que el cliente ha iniciado sesión y sustituye la información de la cuenta de host en el mensaje adjunto de APPC que envía al host.