Método ISecurityProperty::GetOriginalCallerSID (comsvcs.h)
Recupera el identificador de seguridad del proceso base que inició la secuencia de llamadas desde la que se llamó al método actual.
La manera preferida de obtener información sobre el autor de la llamada original es usar la interfaz ISecurityCallContext .
Sintaxis
HRESULT GetOriginalCallerSID(
[out] PSID *pSID
);
Parámetros
[out] pSID
Referencia al identificador de seguridad del proceso base que inició la secuencia de llamadas desde la que se llamó al 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 |
---|---|
|
El identificador de seguridad del proceso base que originó la llamada al objeto actual se devuelve en el parámetro pSid. |
|
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 GetOriginalCallerSID para determinar el identificador de seguridad del proceso original que inició la secuencia de llamadas desde la que se llamó al método actual, no al autor (o creador) del proceso. Aunque un puntero a un objeto se puede pasar a través de una serie de servidores y usuarios, GetOriginalCallerSID siempre devuelve el primer servidor y usuario del proceso, incluso si ese usuario no era el creador original del objeto. En el escenario siguiente se muestra la funcionalidad del método GetOriginalCallerSID .
- El proceso base 1, que se ejecuta en el servidor A como usuario A, crea el objeto X, en el servidor B, que se ejecuta como usuario B.
- El proceso base 1 pasa su referencia en el objeto X al proceso base 2, que se ejecuta en el servidor D como usuario D.
- El proceso base 2 usa esa referencia para llamar a Object X.
- El objeto X llama a Object Y, que se ejecuta en el servidor C. Si Object Y llama a GetOriginalCallerSID, se devuelve el identificador de seguridad del usuario D, no el usuario A, que creó originalmente el objeto.
Debe llamar a 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 |