Función SaslInitializeSecurityContextW (sspi.h)
La función SaslInitializeSecurityContext ajusta una llamada estándar a la función InicializeSecurityContext (General) de la interfaz del proveedor de soporte de seguridad y procesa las cookies del servidor SASL.
Sintaxis
SECURITY_STATUS SEC_ENTRY SaslInitializeSecurityContextW(
[in] PCredHandle phCredential,
[in] PCtxtHandle phContext,
[in] LPWSTR pszTargetName,
[in] unsigned long fContextReq,
[in] unsigned long Reserved1,
[in] unsigned long TargetDataRep,
[in] PSecBufferDesc pInput,
[in] unsigned long Reserved2,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Parámetros
[in] phCredential
Identificador de las credenciales devueltas por
Función AcquireCredentialsHandle usada para compilar el contexto de seguridad. El uso de la función SaslInitializeSecurityContext requiere al menos credenciales OUTBOUND.
[in] phContext
Puntero a una estructura CtxtHandle . En la primera llamada a la función SaslInitializeSecurityContext , este puntero es NULL. En la segunda llamada, este parámetro es un puntero al identificador del contexto parcialmente formado devuelto en el parámetro phNewContext por la primera llamada.
[in] pszTargetName
Puntero a una cadena Unicode o ANSI que indica el destino del contexto.
[in] fContextReq
Marcas de bits que indican los requisitos del contexto. Las marcas usadas para este parámetro tienen el prefijo ISC_REQ_; por ejemplo: ISC_REQ_DELEGATE. Especifique combinaciones de las marcas de atributos siguientes.
Para obtener más descripciones de los distintos atributos, consulte Requisitos de contexto.
[in] Reserved1
Valor reservado; debe ser cero.
[in] TargetDataRep
Indica la representación de datos, como el orden de bytes, en el destino. Puede ser SECURITY_NATIVE_DREP o SECURITY_NETWORK_DREP.
[in] pInput
Puntero a una estructura SecBufferDesc que contiene punteros a los búferes proporcionados como entrada para el paquete. El puntero debe ser NULL en la primera llamada a la función. En las llamadas posteriores a la función, es un puntero a un búfer asignado con suficiente memoria para contener el token devuelto por el elemento del mismo nivel remoto.
SASL requiere un único búfer de tipo SECBUFFER_TOKEN que contenga el desafío recibido del servidor.
[in] Reserved2
Valor reservado; debe ser cero.
[out] phNewContext
Puntero a una estructura CtxtHandle . En la primera llamada a la función SaslInitializeSecurityContext , este puntero recibe el nuevo identificador de contexto. En la segunda llamada, phNewContext puede ser el mismo que el identificador especificado en el parámetro phContext .
[in, out] pOutput
Puntero a una estructura SecBufferDesc que contiene punteros a la estructura SecBuffer que recibe los datos de salida. Si un búfer se ha escrito como SEC_READWRITE en la entrada, estará allí en la salida. El sistema asignará un búfer para el token de seguridad si se solicita (a través de ISC_REQ_ALLOCATE_MEMORY) y rellena la dirección en el descriptor de búfer para el token de seguridad.
[out] pfContextAttr
Puntero a una variable para recibir un conjunto de marcas de bits que indican los atributos del contexto establecido. Para obtener una descripción de los distintos atributos, consulte Requisitos de contexto.
Las marcas usadas para este parámetro tienen el prefijo ISC_RET_, como ISC_RET_DELEGATE.
Para obtener una lista de valores válidos, consulte el parámetro fContextReq .
No compruebe los atributos relacionados con la seguridad hasta que la llamada de función final se devuelva correctamente. Las marcas de atributo no relacionadas con la seguridad, como la marca de ASC_RET_ALLOCATED_MEMORY, se pueden comprobar antes de la devolución final.
[out, optional] ptsExpiry
Puntero a una estructura TimeStamp que recibe la hora de expiración del contexto. Se recomienda que el paquete de seguridad devuelva siempre este valor en la hora local. Este parámetro es opcional y se debe pasar NULL para clientes de corta duración.
Valor devuelto
Si la llamada se completa correctamente, esta función devuelve SEC_E_OK. En la tabla siguiente se muestran algunos valores devueltos de errores posibles.
Código devuelto | Descripción |
---|---|
|
No se permite el procesamiento de authz. |
|
No hay suficiente memoria disponible para completar la solicitud. |
|
No se encuentra ningún búfer de token en el parámetro pOutput o el mensaje no pudo descifrarse. |
Comentarios
Nota
El encabezado sspi.h define SaslInitializeSecurityContext como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | No se admite ninguno |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | sspi.h (include Security.h) |
Library | Secur32.lib |
Archivo DLL | Secur32.dll |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de