判斷是否啟用角色型安全性
藉由使用可從安全性呼叫內容物件取得的 ISecurityCallContext::IsSecurityEnabled 方法,您可以判斷是否為目前對象啟用安全性。 您應該先呼叫 IsSecurityEnabled,再使用 ISecurityCallContext::IsCallerInRole 檢查角色成員資格,因為如果未啟用安全性,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 。)
相關主題