共用方式為


SCH_CREDENTIALS結構 (schannel.h)

SCH_CREDENTIALS結構包含安全通道認證的初始化資訊。

語法

typedef struct _SCH_CREDENTIALS {
  DWORD           dwVersion;
  DWORD           dwCredFormat;
  DWORD           cCreds;
  PCCERT_CONTEXT  *paCred;
  HCERTSTORE      hRootStore;
  DWORD           cMappers;
  _HMAPPER        **aphMappers;
  struct          _HMAPPER;
  DWORD           dwSessionLifespan;
  DWORD           dwFlags;
  DWORD           cTlsParameters;
  PTLS_PARAMETERS pTlsParameters;
} SCH_CREDENTIALS, *PSCH_CREDENTIALS;

成員

dwVersion

設定為 SCH_CREDENTIALS_VERSION。

dwCredFormat

內核模式通道支援下列值。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP 和 Windows XP/2000:不支援此旗標,而且必須是零。

價值 意義
SCH_CRED_FORMAT_CERT_HASH
0x00000001
傳入之 SCH_CREDENTIALS 結構 paCred 成員必須是長度為 20 的位元組陣列指標,其中包含憑證指紋。 憑證假設位於本機計算機的「MY」存放區中。
SCH_CRED_FORMAT_CERT_HASH_STORE
0x00000002
SCH_CREDENTIALS 結構 paCred 成員指向 SCHANNEL_CERT_HASH_STORE 結構。

cCreds

paCred 陣列中的結構數目。

paCred

要CERT_CONTEXT結構的指標數位。 每個指標都會指定一個憑證,其中包含要用於驗證應用程式的私鑰。

用戶端應用程式通常會傳入空的清單,並視 Schannel 而定,以尋找適當的憑證,或視需要稍後建立憑證。

hRootStore

自選。 僅適用於伺服器應用程式。 處理包含應用程式信任之證書頒發機構單位 (CA) 自我簽署跟證書的證書存儲。 此成員僅供需要客戶端驗證的伺服器端應用程式使用。

cMappers

保留。

aphMappers

保留。

_HMAPPER

dwSessionLifespan

Schannel 在其會話快取中保留會話的毫秒數。 經過此時間之後,客戶端與伺服器之間的任何新連線都需要新的 Schannel 會話。 將此成員的值設定為零,以使用預設值 36000000 毫秒(十小時)。

dwFlags

包含控制安全通道行為的位旗標。 這個成員可以是零或下列值的組合。

價值 意義
SCH_CRED_AUTO_CRED_VALIDATION
0x00000020
僅限用戶端。

此旗標與SCH_CRED_MANUAL_CRED_VALIDATION相反,且屬於安全通道的預設行為。

SCH_CRED_CACHE_ONLY_URL_RETRIEVAL_ON_CREATE
0x00020000
指示 Schannel 在呼叫 AcquireCredentialsHandle (Schannel)時,將CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL旗標傳遞至 CertGetCertificateChain 函式。

Windows Server 2003 和 Windows XP/2000:不支援此旗標。

SCH_CRED_DISABLE_RECONNECTS
0x00000080
僅限伺服器。

如果已設定此旗標,則使用此認證執行的完整交握將不允許重新連線。 系統會建立快取專案,以便稍後使用 applyControlToken 函式,讓會話可以繼續。

SCH_CRED_IGNORE_NO_REVOCATION_CHECK
0x00000800
檢查撤銷的憑證時,請忽略CRYPT_E_NO_REVOCATION_CHECK錯誤。 如需其他限制,請參閱。
SCH_CRED_IGNORE_REVOCATION_OFFLINE
0x00001000
檢查撤銷的憑證時,請忽略CRYPT_E_REVOCATION_OFFLINE錯誤。 如需其他限制,請參閱。
SCH_CRED_MANUAL_CRED_VALIDATION
0x00000008
僅限用戶端。

防止 Schannel 驗證收到的伺服器證書鏈結。

SCH_CRED_NO_DEFAULT_CREDS
0x00000010
僅限用戶端。

防止 Schannel 嘗試自動提供憑證鏈結以進行客戶端驗證。

SCH_CRED_NO_SERVERNAME_CHECK
0x00000004
僅限用戶端。

防止 Schannel 將所提供的目標名稱與 伺服器憑證中的主體名稱進行比較,

SCH_CRED_NO_SYSTEM_MAPPER
0x00000002
僅限伺服器。

防止 Schannel 使用內建的系統憑證對應函式,將 客戶端憑證對應至使用者帳戶

SCH_CRED_REVOCATION_CHECK_CHAIN
0x00000200
驗證憑證鏈結時,請檢查所有憑證是否有撤銷。 如需其他限制,請參閱。
SCH_CRED_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
0x00000400
驗證憑證鏈結時,請勿檢查根目錄是否有撤銷。 如需其他限制,請參閱。
SCH_CRED_REVOCATION_CHECK_END_CERT
0x00000100
驗證憑證鏈結時,只檢查最後一個憑證是否有撤銷。 如需其他限制,請參閱。
SCH_CRED_USE_DEFAULT_CREDS
0x00000040
僅限用戶端。

安全通道會嘗試自動提供憑證鏈結以進行客戶端驗證。 此值與SCH_CRED_NO_DEFAULT_CREDS相反。

SCH_SEND_AUX_RECORD
0x00200000
指示 Schannel 使用加密區塊鏈結模式搭配對稱加密套件時,將數據分割成兩個不同的記錄,以對抗 SSL/TLS 通訊協定中的弱點。 如需詳細資訊,請參閱 SSL/TLS 中 弱點允許資訊洩漏

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP 和 Windows XP/2000:不支援此旗標。

SCH_SEND_ROOT_CERT
0x00040000
安全通道會將跟證書傳送為憑證訊息的一部分。
注意 安全通道用戶端或伺服器透過網路傳送的跟證書不受信任。 它應該根據跟證書的受信任哈希進行驗證。
 
SCH_USE_STRONG_CRYPTO
0x00400000
指示 Schannel 停用已知的弱式密碼編譯演算法、加密套件,以及可能啟用的 SSL/TLS 通訊協定版本,以提升互操作性。
SCH_USE_PRESHAREDKEY_ONLY
0x00800000
指示 Schannel 只選取 PSK 加密套件,並停用所有其他加密套件。

cTlsParameters

pTlsParameters 陣列中的項目計數。

指定超過SCH_CRED_MAX_SUPPORTED_PARAMETERS是錯誤的。

pTlsParameters

指出 TLS 參數限制之 TLS_PARAMETERS 結構的指標陣列,如果有的話。 如果未指定任何限制,則會使用系統預設值。 建議應用程式依賴系統預設值。

使用 cAlpnIds == 0 和 rgstrAlpnIds == NULL 來包含多個 TLS_PARAMETERS 結構是錯誤的。

言論

若要使用SCH_CREDENTIALS結構,請定義SCHANNEL_USE_BLACKLISTS以及UNICODE_STRING和PUNICODE_STRING。 或者,包括 Ntdef.h、SubAuth.h 或 Winternl.h。

要求

要求 價值
最低支援的用戶端 Windows 10 1809 [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 1809 [僅限傳統型應用程式]
標頭 schannel.h

另請參閱

CRYPTO_SETTINGS

TLS_PARAMETERS