閱讀英文

共用方式為


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 的認證。
  • DnsDomainNameDnsDomainName>\*格式<的通配符網域認證完全相符。
  • NetBIOSDomainName NetBIOSDomainName>\* 格式<的通配符網域認證完全相符
  • 名為 CRED_SESSION_WILDCARD_NAME的認證。
  • 名為 「*」 的認證。
CredReadDomainCredentialsCredRead 不同,因為它處理網域 (CRED_TYPE_DOMAIN_PASSWORD 或CRED_TYPE_DOMAIN_CERTIFICATE) 认证的惯用性。 網域認證包含多個目標成員。

如果 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