다음을 통해 공유


Set_Conversation_Security_Type(CPI-C)

호출하는 프로그램에서 호출된 프로그램에 의해 Set_Conversation_Security_Type 호출(함수 이름 cmscst)이 실행되어 LU(파트너 논리 단위)가 호출된 프로그램에 대한 액세스의 유효성을 검사하는 데 필요한 정보를 지정합니다.

구문

  
CM_ENTRY Set_Conversation_Security_Type(   
  unsigned char FAR *conversation_ID,          
  CM_INT32 FAR *conversation_security_type,    
    CM_INT32 FAR *return_code                    
);  

매개 변수

conversation_ID
제공된 매개 변수입니다. 대화의 식별자를 지정합니다. 이 매개 변수의 값은 Initialize_Conversation 반환되었습니다.

conversation_security_type
제공된 매개 변수입니다. 파트너 LU가 호출된 프로그램에 대한 액세스의 유효성을 검사하는 데 필요한 정보를 지정합니다. 구성 중에 호출된 프로그램에 대해 설정된 대화 보안에 따라 다음 값 중 하나를 사용합니다.

CM_SECURITY_NONE
호출된 프로그램이 대화 보안을 사용하지 않음을 나타내기 위해

CM_SECURITY_PROGRAM
호출된 프로그램이 대화 보안을 사용하므로 사용자 식별자와 암호가 필요함을 나타냅니다.

CM_SECURITY_SAME
사용자 ID가 파트너 LU의 노드 서비스에 할당 요청에 전송됨을 나타냅니다. 또한 이 설정은 유효한 사용자 식별자와 암호를 사용하여 호출된 호출된 프로그램이 다른 프로그램을 호출하도록 지정하는 데도 사용됩니다( TP 간 통신에 설명된 대로). 예를 들어 프로그램 A가 유효한 사용자 식별자 및 암호를 사용하여 프로그램 B를 호출하고 프로그램 B가 프로그램 C를 차례로 호출한다고 가정합니다. 프로그램 B가 CM_SECURITY_SAME 값을 지정하면 CPI-C는 프로그램 C에 대한 LU, 프로그램 A의 사용자 식별자 및 이미 확인된 표시기를 보냅니다. 이 표시기는 프로그램 C에게 암호를 요구하지 않도록 지시합니다(프로그램 C가 이미 확인된 표시기를 수락하도록 구성된 경우).

CM_SECURITY_SAME 사용하는 경우 애플리케이션은 항상 Set_Conversation_Security_User_ID 및 Set_Conversation_Security_Password 호출하여 security_user_IDsecurity_password 매개 변수에 대한 값을 제공해야 합니다. SNA 서버와 피어 LU 간에 협상된 속성에 따라 Allocate 함수는 다음 우선 순위로 3가지 종류의 연결(FMH-5) 메시지 중 하나를 보냅니다.

  1. RU가 이미 확인된 보안을 협상한 경우 SNA 서버에서 보낸 연결에는 Set_Conversation_Security_Password 지정된 security_password 매개 변수 필드의 내용이 포함되지 않습니다.

  2. RU가 영구 확인 보안을 협상한 경우 SNA 서버에서 보낸 Attach에는 Set_Conversation_Security_Password 지정된 security_password 매개 변수가 포함되지만, LU-LU 세션이 시작된 이후 Set_Conversation_Security_User_ID 설정한 지정된 security_user_ID 매개 변수에 대한 첫 번째 연결인 경우에만 연결이 모든 후속 Attaches(애플리케이션 또는 다른 애플리케이션에서 발급)에서 security_password 매개 변수를 생략합니다. 이 LU-LU 모드 트리플렛).

  3. 애플리케이션은 RU 간에 협상된 보안 모드를 알 수 없으며, 발급 중인 Allocate 함수가 LU-LU 모드 트리플렛의 첫 번째 함수인지 여부를 알 수 없습니다. 따라서 conversation_security_type CM_SECURITY_SAME 설정된 경우 애플리케이션은 항상 Set_Conversation_Security_User_ID 및 Set_Conversation_Security_Password 호출하여 security_user_ID 및 security_password 매개 변수를 설정해야 합니다.

    영구 확인 및 이미 확인된 보안에 대한 자세한 내용은 SNA 형식 가이드"FM 헤더 5: 연결(LU 6.2) 섹션을 참조하세요.

    CPI-C 자동 로그온 기능을 사용하는 경우 이 매개 변수를 CM_SECURITY_PROGRAM 설정해야 합니다. 자세한 내용은 이 항목의 뒷부분에 있는 설명 섹션을 참조하세요.

    return_code
    이 호출에서 반환된 코드입니다. 유효한 반환 코드는 이 항목의 뒷부분에 나와 있습니다.

반환 코드

CM_OK
기본 반환 코드; 호출이 성공적으로 실행되었습니다.

CM_PROGRAM_STATE_CHECK
기본 반환 코드; 대화가 INITIALIZE 상태가 아닙니다.

CM_PROGRAM_PARAMETER_CHECK
기본 반환 코드; conversation_ID 또는 conversation_security_type 지정한 값이 잘못되었습니다.

CM_PRODUCT_SPECIFIC_ERROR
기본 반환 코드; 제품별 오류가 발생하여 제품 오류 로그에 기록되었습니다.

상태 변경

대화는 INITIALIZE 상태여야 합니다.

상태 변경은 없습니다.

설명

이 호출은 Initialize_Conversation 지정된 측면 정보에서 초기 보안 유형을 재정의합니다. 할당이 실행된 후에는 이 호출을 실행할 수 없습니다.

대화 보안 유형을 CM_SECURITY_NONE 설정하면 대화가 할당될 때 사용자 식별자와 암호가 무시됩니다.

CM_SECURITY_SAME 대화 보안 유형은 사용자 ID 집합이 동일하고 모든 노드에 대해 사용자의 유효성을 검사할 때 한 노드에서 수행된 사용자 유효성 검사를 허용하는 노드 간에 사용하기 위한 것입니다. 이 경우 사용자 ID의 초기 유효성 검사를 제외하고는 암호가 사용되지 않습니다.

CPI-C 애플리케이션에 대한 자동 로그온은 Host Integration Server에서 지원됩니다. 이 기능을 사용하려면 네트워크 관리자의 특정 구성이 필요합니다. CPI-C 애플리케이션은 SNA 서버의 클라이언트에서 LAN 쪽에서 호출되어야 합니다. 클라이언트는 Microsoft Windows 도메인에 로그인해야 하지만 SNA 서버 CPI-C API를 지원하는 모든 플랫폼일 수 있습니다.

클라이언트 애플리케이션은 특별한 하드 코딩된 CPI-C 사용자 이름 MS$SAME 및 암호 MS$SAME를 사용하여 프로그램 수준 보안을 사용하도록 코딩됩니다. 이 세션 할당이 클라이언트에서 SNA 서버로 이동하면 SNA 서버는 클라이언트가 로그온된 Windows 계정에 해당하는 호스트 계정 및 암호를 조회하고 호스트 계정 정보를 호스트에 보내는 APPC 연결 메시지로 대체합니다.