Compartir a través de


Método ISecurityProperty::GetDirectCallerSID (comsvcs.h)

Recupera el identificador de seguridad del proceso externo que llamó al método que se está ejecutando actualmente. También puede obtener esta información mediante ISecurityCallContext.

Sintaxis

HRESULT GetDirectCallerSID(
  [out] PSID *pSID
);

Parámetros

[out] pSID

Referencia al identificador de seguridad del proceso desde el que se invocó el método actual.

Valor devuelto

Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED y E_FAIL, así como los siguientes valores.

Código devuelto Descripción
S_OK
El identificador de seguridad del proceso que llamó al método actual se devuelve en el parámetro pSid.
CONTEXT_E_NOCONTEXT
El objeto actual no tiene un contexto asociado porque el componente no se importó en una aplicación o el objeto no se creó con uno de los métodos CreateInstance de COM+.

Comentarios

Use el método GetDirectCallerSID para determinar el identificador de seguridad del proceso que llamó al método que se está ejecutando actualmente del objeto. La seguridad se aplica a través de los límites del proceso. Esto significa que el identificador de seguridad devuelto por GetDirectCallerSID es el identificador de seguridad asociado al proceso que llamó al proceso en el que se ejecuta el objeto actual, no necesariamente el llamador inmediato en el propio objeto. Si un objeto llama a otro objeto dentro del mismo proceso, cuando el segundo objeto llama a GetDirectCallerSID , obtiene el identificador de seguridad del llamador más inmediato fuera de su propio límite de proceso, no el identificador de seguridad del objeto que llamó directamente a él.

En los escenarios siguientes se muestra la funcionalidad del método GetDirectCallerSID :

  • Un proceso base que se ejecuta en el servidor A, como usuario A, llama al objeto X en el servidor B, que se ejecuta como usuario B. A continuación, el objeto X llama al objeto Y, que se ejecuta en el servidor C. Si Object Y llama a GetDirectCallerSID, se devuelve el identificador de seguridad del usuario B.
  • Un proceso base, que se ejecuta en el servidor A como usuario A, llama al objeto X en el servidor B, que se ejecuta como usuario B. A continuación, object X llama al objeto Y, ejecutándose en el mismo proceso que object X, también en el servidor B. Cuando Object Y llama a GetDirectCallerSID, se devuelve el identificador de seguridad del usuario A, no el identificador de seguridad del usuario B.
Debe llamar a ISecurityProperty::ReleaseSID en un identificador de seguridad cuando termine de usarlo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado comsvcs.h

Consulte también

ISecurityProperty