EOLE_AUTHENTICATION_CAPABILITIES列舉 (objidl.h)
指定 CoInitializeSecurity 和 IClientSecurity::SetBlanket (或其協助程式函式 CoSetProxyBlanket) 中的各種功能。
Syntax
typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
EOAC_NONE = 0,
EOAC_MUTUAL_AUTH = 0x1,
EOAC_STATIC_CLOAKING = 0x20,
EOAC_DYNAMIC_CLOAKING = 0x40,
EOAC_ANY_AUTHORITY = 0x80,
EOAC_MAKE_FULLSIC = 0x100,
EOAC_DEFAULT = 0x800,
EOAC_SECURE_REFS = 0x2,
EOAC_ACCESS_CONTROL = 0x4,
EOAC_APPID = 0x8,
EOAC_DYNAMIC = 0x10,
EOAC_REQUIRE_FULLSIC = 0x200,
EOAC_AUTO_IMPERSONATE = 0x400,
EOAC_DISABLE_AAA = 0x1000,
EOAC_NO_CUSTOM_MARSHAL = 0x2000,
EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;
常數
EOAC_NONE 值: 0 表示未設定任何功能旗標。 |
EOAC_MUTUAL_AUTH 值: 0x1 如果指定此旗標,則會忽略它。 某些驗證服務會自動提供相互驗證的支援。 如需詳細資訊,請參閱 COM 和安全性套件 。 |
EOAC_STATIC_CLOAKING 值: 0x20 設定靜態遮蔽。 設定此旗標時,如果判斷用戶端的身分識別,DCOM 會使用線程令牌 () 。 不過,如果 SetBlanket 未呼叫) ,而且每次在 Proxy 上呼叫 CoSetProxyBlanket 時,用戶端的身分識別都會在每個 Proxy 上的第一次呼叫上決定 (。 如需靜態遮蔽的詳細資訊,請參閱 Cloaking。 CoInitializeSecurity 和 IClientSecurity::SetBlanket 如果同時設定了兩個遮蔽旗標,或 Schannel 是驗證服務時設定任一旗標,就會傳回錯誤。 |
EOAC_DYNAMIC_CLOAKING 值: 0x40 設定動態遮蔽。 設定此旗標時,如果判斷用戶端的身分識別,DCOM 會使用線程令牌 () 。 在每個對 Proxy 的呼叫上,會檢查目前的線程令牌,以判斷用戶端的身分識別是否已變更, (產生額外的效能成本) ,而且只有在需要時才再次驗證用戶端。 動態遮蔽只能由客戶端設定。 如需動態遮蔽的詳細資訊,請參閱 Cloaking。 CoInitializeSecurity 和 IClientSecurity::SetBlanket 如果同時設定了兩個遮蔽旗標,或 Schannel 是驗證服務時設定任一旗標,就會傳回錯誤。 |
EOAC_ANY_AUTHORITY 值: 0x80 這個旗標已過時。 |
EOAC_MAKE_FULLSIC 值: 0x100 導致 DCOM 以完整格式將安全通道伺服器主體名稱傳送給用戶端,做為預設安全性交涉的一部分。 名稱會從伺服器證書擷取。 如需 fullsic 窗體的詳細資訊,請參閱 主體名稱。 |
EOAC_DEFAULT 值: 0x800 告知 DCOM 使用 來自 CoInitializeSecurity 呼叫的有效功能。 如果未呼叫 CoInitializeSecurity,EOAC_NONE 將用於功能旗標。 此旗標只能由用戶端在 IClientSecurity::SetBlanket 或 CoSetProxyBlanket 的呼叫中設定。 |
EOAC_SECURE_REFS 值: 0x2 驗證分散式參考計數呼叫,以防止惡意用戶釋放仍在使用的物件。 如果設定此旗標,這隻能在用戶端呼叫 CoInitializeSecurity 中完成, dwAuthnLevel 中的驗證層級 () 無法設定為 none。 伺服器一律會驗證 Release 呼叫。 設定此旗標可防止已驗證的客戶端釋放另一個已驗證客戶端的物件。 建議用戶端一律設定此旗標,不過效能會因為與額外安全性相關聯的額外負荷而受到影響。 |
EOAC_ACCESS_CONTROL 值: 0x4 表示 CoInitializeSecurity 的 pSecDesc 參數是訪問控制物件上 IAccessControl 介面的指標。 當 DCOM 進行安全性檢查時,它會呼叫 IAccessControl::IsAccessAllowed。 此旗標僅由伺服器設定。 如果同時設定EOAC_APPID和EOAC_ACCESS_CONTROL旗標,CoInitializeSecurity 會傳回錯誤。 |
EOAC_APPID 值: 0x8 表示 CoInitializeSecurity 的 pSecDesc 參數是 AppID 之 GUID 的指標。 CoInitializeSecurity 函式會在登錄中查閱 AppID,並從該處讀取安全性設定。 如果設定此旗標,則會忽略 CoInitializeSecurity 的所有其他參數,而且必須是零。 只有伺服器可以設定此旗標。 如需此功能旗標的詳細資訊,請參閱下面的一節。 如果同時設定EOAC_APPID和EOAC_ACCESS_CONTROL旗標,CoInitializeSecurity 會傳回錯誤。 |
EOAC_DYNAMIC 值: 0x10 保留的。 |
EOAC_REQUIRE_FULLSIC 值: 0x200 導致DCOM失敗 CoSetProxyBlanket 呼叫,其中 Schannel 主體名稱是以 fullsic 以外的任何格式指定。 此旗標目前僅適用於用戶端。 如需 fullsic 窗體的詳細資訊,請參閱 主體名稱。 |
EOAC_AUTO_IMPERSONATE 值: 0x400 保留的。 |
EOAC_DISABLE_AAA 值: 0x1000 會導致在呼叫端的身分識別下啟動伺服器進程的任何啟用, (activate-as-activateor) 失敗,E_ACCESSDENIED。 這個值只能在用戶端對 CoInitializeSecurity 的呼叫中指定,可讓以特殊許可權帳戶執行的應用程式 (例如 LocalSystem) ,協助防止其身分識別用來啟動不受信任的元件。 使用 CLSCTX 列舉CLSCTX_ENABLE_AAA的啟用呼叫,將會允許該呼叫的啟動即啟用程序啟用。 |
EOAC_NO_CUSTOM_MARSHAL 值: 0x2000 指定此旗標有助於在使用 DCOM 或 COM+ 時保護伺服器安全性。 它可減少執行任意 DLL 的機會,因為它只允許封送處理在 Ole32.dll、ComAdmin.dll、ComSvcs.dll 或 Es.dll 中實作的 CLID,或是實作CATID_MARSHALER類別標識符。 任何對系統作業至關重要的服務都應該設定此旗標。 |
EOAC_RESERVED1 值: 0x4000 |
備註
設定EOAC_APPID旗標時, CoInitializeSecurity 會在 AppID 下尋找驗證層級。 如果找不到驗證層級,它會尋找預設的驗證層級。 如果找不到預設驗證層級,它會產生預設的連線驗證層級。 如果驗證層級未 RPC_C_AUTHN_LEVEL_NONE,CoInitializeSecurity 會在 AppID 下尋找存取權限值。 如果找不到,它會尋找預設訪問許可權值。 如果找不到,它會產生預設訪問許可權。 所有其他安全性設定都與舊版應用程式相同。
如果 AppID 為 NULL,CoInitializeSecurity 會在登錄中查閱應用程式 .exe 名稱,並使用儲存在該處的 AppID。 如果 AppID 不存在,則會使用機器預設值。
如果功能參數中已設定下列任何旗標, IClientSecurity::SetBlanket 方法和 CoSetProxyBlanket 函式會傳回錯誤:EOAC_SECURE_REFS、EOAC_ACCESS_CONTROL、EOAC_APPID、EOAC_DYNAMIC、EOAC_REQUIRE_FULLSIC、EOAC_DISABLE_AAA或EOAC_NO_CUSTOM_MARSHAL。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
標頭 | objidl.h (包含 Objidl.h) |