Détermination de l’activation ou non de la sécurité Role-Based
À l’aide de la méthode ISecurityCallContext :: IsSecurityEnabled disponible à partir de l’objet de contexte de l’appel de sécurité, vous pouvez déterminer si la sécurité est activée pour l’objet en cours. Vous devez appeler IsSecurityEnabled avant d’utiliser ISecurityCallContext ::IsCallerInRole pour vérifier l’appartenance à un rôle, car IsCallerInRole retourne la valeur true si la sécurité n’est pas activée.
les développeurs Microsoft Visual Basic appellent GetSecurityCallContext pour obtenir une référence à un objet SecurityCallContext , puis appeler IsSecurityEnabled, comme illustré dans l’exemple suivant :
Dim objSecCallCtx As SecurityCallContext
Dim boolSecEn As Boolean
Set objSecCallCtx = GetSecurityCallContext()
boolSecEn = objSecCallCtx.IsSecurityEnabled()
Microsoft Visual C++ développeurs peuvent appeler ISecurityCallContext :: IsSecurityEnabled en appelant CoGetCallContext pour obtenir un pointeur vers ISecurityCallContext , puis en appelant IsSecurityEnabled. Voici un bref exemple :
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;
Bien que la meilleure façon d’appeler IsSecurityEnabled est d’utiliser l’objet de contexte d’appel de sécurité, vous pouvez également appeler IsSecurityEnabled via le contexte de l’objet. (Pour plus d’informations, consultez ObjectContext ou IObjectContext .)