CredReadDomainCredentialsA 函式 (wincred.h)
CredReadDomainCredentials 函式會從使用者的認證集讀取網域認證。 使用的認證集是與目前令牌登入會話相關聯的認證集。 令牌不得停用使用者的 SID。
BOOL CredReadDomainCredentialsA(
[in] PCREDENTIAL_TARGET_INFORMATIONA TargetInfo,
[in] DWORD Flags,
[out] DWORD *Count,
[out] PCREDENTIALA **Credential
);
[in] TargetInfo
識別目標伺服器的目標資訊。 至少有一個命名成員不得為 NULL:NetbiosServerName、DnsServerName、NetbiosDomainName、DnsDomainName 或 DnsTreeName。
[in] Flags
旗標,控制函式的作業。
定義下列旗標:
CRED_CACHE_TARGET_INFORMATION
使用 CredGetTargetInfo 快取 TargetInfo 進行後續讀取。
[out] Count
認證陣列中傳回的 認證 計數。
[out] Credential
認證指標陣列的指標。 會傳回符合 TargetInfo 的最特定現有認證。 例如,如果各種類型的認證 (,CRED_TYPE_DOMAIN_PASSWORD和CRED_TYPE_DOMAIN_CERTIFICATE認證) 存在,則會傳回每個類型的其中一個。 如果要對具名目標進行連線,則會使用這個最特定的認證。
只有 TargetInfo 所指定的認證類型。會傳回 CredTypes 陣列。 傳回的 Credentials 陣列會以與 TargetInfo 相同的順序排序。CredTypes 陣列。 也就是說,驗證套件會在 TargetInfo 中稍早指定它來指定慣用的認證類型。CredTypes 陣列。如果 TargetInfo。CredTypeCount 為零, 認證 陣列會依照下列排序順序傳回:
- CRED_TYPE_DOMAIN_CERTIFICATE
- CRED_TYPE_DOMAIN_PASSWORD
傳回的緩衝區是單一配置的區塊。 緩衝區內所包含的任何指標都是這個單一配置區塊中位置的指標。 呼叫 CredFree,必須釋放單一傳回的緩衝區。
函式會在成功時傳回 TRUE ,並在失敗時傳回 FALSE 。 您可以呼叫 GetLastError 函式,以取得更具體的狀態代碼。 可以傳回下列狀態代碼:
- ERROR_INVALID_PARAMETER
未指定命名參數。
- ERROR_NOT_FOUND
沒有符合指定命名參數的認證。
- ERROR_NO_SUCH_LOGON_SESSION
登入會話不存在,或沒有與此登入會話相關聯的認證集。 網路登入會話沒有相關聯的認證集。
- ERROR_INVALID_FLAGS
為 Flags 參數指定無效 的旗標 。
此函式會傳回最符合命名參數的特定認證。 例如,如果有符合目標伺服器名稱和符合目標功能變數名稱的認證,則只會傳回伺服器特定認證。 這是將使用的認證。
下列清單會指定一個以上的相符專案時,從最特定到最特定) 傳回認證的順序 (:
- 認證目標名稱的格式<為 DfsRoot>\<DfsShare>,且與 TargetName 完全相符。
- DnsServerName 上的完全相符專案。
- NetBIOSServerName 上的完全相符專案。
- TargetName 上的完全相符專案。
- 符合 DnsServerName 與通配符伺服器認證。 如果有多個通配符伺服器認證相符,則會使用具有較長 TargetName 的認證。 也就是說,會使用 *.example.microsoft.com 的認證,而不是 *.microsoft.com 的認證。
- DnsDomainName 與 DnsDomainName>\*格式<的通配符網域認證完全相符。
- NetBIOSDomainName 與 NetBIOSDomainName>\* 格式<的通配符網域認證完全相符
- 名為 CRED_SESSION_WILDCARD_NAME的認證。
- 名為 「*」 的認證。
如果 Credentials 參數所指定 CREDENTIAL 結構的 Type 成員值CRED_TYPE_DOMAIN_EXTENDED,則必須在目標名稱中指定命名空間。 此函式只能傳回指定類型的一個認證。
此函式可以傳回此類型的多個認證,但CRED_TYPE_DOMAIN_EXTENDED不能與 TargetInfo 參數所指定之 CREDENTIAL_TARGET_INFORMATION 結構之 CredTypes 成員中的其他類型混合。
注意
wincred.h 標頭會根據 UNICODE 預處理器常數的定義,將 CredReadDomainCredentials 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincred.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |