Determinare se la sicurezza basata sui ruoli è abilitata
Utilizzando il metodo ISecurityCallContext::IsSecurityEnabled disponibile dall'oggetto contesto di chiamata di sicurezza, è possibile determinare se la sicurezza è abilitata per l'oggetto corrente. È consigliabile chiamare IsSecurityEnabled prima di usare ISecurityCallContext::IsCallerInRole per controllare l'appartenenza al ruolo perché IsCallerInRole restituisce True se la sicurezza non è abilitata.
Gli sviluppatori di Microsoft Visual Basic chiamano GetSecurityCallContext per ottenere un riferimento a un oggetto SecurityCallContext e quindi chiamare IsSecurityEnabled, come illustrato nell'esempio seguente:
Dim objSecCallCtx As SecurityCallContext
Dim boolSecEn As Boolean
Set objSecCallCtx = GetSecurityCallContext()
boolSecEn = objSecCallCtx.IsSecurityEnabled()
Gli sviluppatori di Microsoft Visual C++ possono chiamare ISecurityCallContext::IsSecurityEnabled chiamando CoGetCallContext per ottenere un puntatore a ISecurityCallContext e quindi chiamando IsSecurityEnabled. Di seguito è riportato un breve esempio:
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;
Anche se il modo preferito per chiamare IsSecurityEnabled consiste nell'usare l'oggetto contesto di chiamata di sicurezza, è anche possibile chiamare IsSecurityEnabled tramite il contesto dell'oggetto. (Vedere ObjectContext o IObjectContext per altre informazioni.
Argomenti correlati