EOLE_AUTHENTICATION_CAPABILITIES列舉 (objidl.h)

指定 CoInitializeSecurityIClientSecurity::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


CoInitializeSecurityIClientSecurity::SetBlanket 如果同時設定了兩個遮蔽旗標,或 Schannel 是驗證服務時設定任一旗標,就會傳回錯誤。
EOAC_DYNAMIC_CLOAKING
值: 0x40
設定動態遮蔽。 設定此旗標時,如果判斷用戶端的身分識別,DCOM 會使用線程令牌 () 。 在每個對 Proxy 的呼叫上,會檢查目前的線程令牌,以判斷用戶端的身分識別是否已變更, (產生額外的效能成本) ,而且只有在需要時才再次驗證用戶端。 動態遮蔽只能由客戶端設定。 如需動態遮蔽的詳細資訊,請參閱 Cloaking


CoInitializeSecurityIClientSecurity::SetBlanket 如果同時設定了兩個遮蔽旗標,或 Schannel 是驗證服務時設定任一旗標,就會傳回錯誤。
EOAC_ANY_AUTHORITY
值: 0x80
這個旗標已過時。
EOAC_MAKE_FULLSIC
值: 0x100
導致 DCOM 以完整格式將安全通道伺服器主體名稱傳送給用戶端,做為預設安全性交涉的一部分。 名稱會從伺服器證書擷取。 如需 fullsic 窗體的詳細資訊,請參閱 主體名稱
EOAC_DEFAULT
值: 0x800
告知 DCOM 使用 來自 CoInitializeSecurity 呼叫的有效功能。 如果未呼叫 CoInitializeSecurity,EOAC_NONE 將用於功能旗標。 此旗標只能由用戶端在 IClientSecurity::SetBlanketCoSetProxyBlanket 的呼叫中設定。
EOAC_SECURE_REFS
值: 0x2
驗證分散式參考計數呼叫,以防止惡意用戶釋放仍在使用的物件。 如果設定此旗標,這隻能在用戶端呼叫 CoInitializeSecurity 中完成, dwAuthnLevel 中的驗證層級 () 無法設定為 none。

伺服器一律會驗證 Release 呼叫。 設定此旗標可防止已驗證的客戶端釋放另一個已驗證客戶端的物件。 建議用戶端一律設定此旗標,不過效能會因為與額外安全性相關聯的額外負荷而受到影響。
EOAC_ACCESS_CONTROL
值: 0x4
表示 CoInitializeSecuritypSecDesc 參數是訪問控制物件上 IAccessControl 介面的指標。 當 DCOM 進行安全性檢查時,它會呼叫 IAccessControl::IsAccessAllowed。 此旗標僅由伺服器設定。


如果同時設定EOAC_APPID和EOAC_ACCESS_CONTROL旗標,CoInitializeSecurity 會傳回錯誤。
EOAC_APPID
值: 0x8
表示 CoInitializeSecuritypSecDesc 參數是 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)

另請參閱

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket