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