ISecurityCallContext::IsCallerInRole 方法 (comsvcs.h)
判斷直接呼叫端是否在指定的角色中。
語法
HRESULT IsCallerInRole(
[in] BSTR bstrRole,
[out] VARIANT_BOOL *pfInRole
);
參數
[in] bstrRole
角色的名稱。
[out] pfInRole
如果呼叫端位於指定的角色,則為TRUE;如果不是,則為 FALSE。 如果未為應用程式定義指定的角色,則會傳回 FALSE 。 如果未啟用角色型安全性,此參數會設定為 TRUE 。
傳回值
這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及下列值。
傳回碼 | 描述 |
---|---|
|
bstrRole 參數中指定的角色是可辨識的角色,而 pfIsInRole 參數中傳回的布爾值結果會指出呼叫端是否在該角色中。 |
|
bstrRole 參數中指定的角色不存在。 |
備註
使用此方法可限制存取不應該執行的程式代碼區段,除非呼叫端是指定角色的成員。 Windows 群組和使用者會使用元件服務管理工具指派給應用程式的角色。 如需角色的詳細資訊,請參閱 角色型安全性。
IsCallerInRole 僅適用於目前執行中方法的直接呼叫端。 IsCallerInRole 不適用於呼叫目前方法的呼叫序列中的任何其他呼叫端。 不過,您可以使用 get_Item 屬性方法來取得序列中其他呼叫端的相關信息,以取得安全性呼叫內容物件的 Callers 屬性。
由於未啟用角色型安全性時 IsCallerInRole 為 TRUE,因此在呼叫 IsCallerInRole 之前呼叫 IsSecurityEnabled 是個不錯的主意,以確保 IsCallerInRole 會傳回有用的資訊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | comsvcs.h |