Метод ISecurityProperty::GetOriginalCallerSID (comsvcs.h)
Извлекает идентификатор безопасности базового процесса, который инициировал последовательность вызовов, из которой был вызван текущий метод.
Предпочтительным способом получения сведений об исходном вызывающем объекте является использование интерфейса ISecurityCallContext .
Синтаксис
HRESULT GetOriginalCallerSID(
[out] PSID *pSID
);
Параметры
[out] pSID
Ссылка на идентификатор безопасности базового процесса, который инициировал последовательность вызовов, из которой был вызван текущий метод.
Возвращаемое значение
Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED и E_FAIL, а также следующие значения.
Код возврата | Описание |
---|---|
|
Идентификатор безопасности базового процесса, который вызвал текущий объект, возвращается в параметре pSid. |
|
Текущий объект не имеет контекста, связанного с ним, так как компонент не был импортирован в приложение или объект не был создан с помощью одного из методов COM+ CreateInstance . |
Комментарии
Метод GetOriginalCallerSID используется для определения идентификатора безопасности исходного процесса, который инициировал последовательность вызовов, из которой был вызван текущий метод, а не инициатора (или создателя) процесса. Хотя указатель на объект может передаваться через ряд серверов и пользователей, GetOriginalCallerSID всегда возвращает первый сервер и пользователя процесса, даже если этот пользователь не был первоначальным создателем объекта. В следующем сценарии показаны функциональные возможности метода GetOriginalCallerSID .
- Базовый процесс 1, запущенный на сервере A от имени пользователя A, создает объект X на сервере B, выполняющийся от имени пользователя B.
- Базовый процесс 1 передает свою ссылку на объект X базовому процессу 2, который выполняется на сервере D в качестве пользователя D.
- Базовый процесс 2 использует ссылку для вызова объекта X.
- Объект X вызывает объект Y, работающий на сервере C. Если объект Y вызывает GetOriginalCallerSID, возвращается идентификатор безопасности пользователя D, а не пользователя A, который изначально создал объект.
Вы должны вызвать ReleaseSID для идентификатора безопасности по завершении его использования.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | comsvcs.h |