Определение включения безопасности на основе ролей
Используя метод ISecurityCallContext::IsSecurityEnabled , доступный из объекта контекста вызова безопасности, можно определить, включена ли безопасность для текущего объекта. Прежде чем использовать ISecurityCallContext::IsCallerInRole, необходимо вызвать IsSecurityEnabled проверка, так как IsCallerInRole возвращает значение True, если безопасность не включена.
Разработчики Microsoft Visual Basic вызывают GetSecurityCallContext, чтобы получить ссылку на объект SecurityCallContext, а затем вызвать IsSecurityEnabled, как показано в следующем примере:
Dim objSecCallCtx As SecurityCallContext
Dim boolSecEn As Boolean
Set objSecCallCtx = GetSecurityCallContext()
boolSecEn = objSecCallCtx.IsSecurityEnabled()
Разработчики Microsoft Visual C++ могут вызывать ISecurityCallContext::IsSecurityEnabled, вызвав CoGetCallContext, чтобы получить указатель на ISecurityCallContext, а затем вызвать IsSecurityEnabled. Ниже приведен краткий пример.
ISecurityCallContext* pSecCtx;
VARIANT_BOOL bIsEnabled;
HRESULT hr1 = CoGetCallContext(IID_ISecurityCallContext, (void**)&pSecCtx);
if (FAILED(hr1)) throw(hr1);
if (NULL == pSecCtx) {
// Display error message.
return E_FAIL;
}
HRESULT hr2 = pSecCtx->IsSecurityEnabled(&bIsEnabled);
return hr2;
Хотя предпочтительный способ вызова IsSecurityEnabled использует объект контекста вызова безопасности, можно также вызвать IsSecurityEnabled через контекст объекта. (См. раздел ObjectContext или IObjectContext для получения дополнительных сведений.)
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по