共用方式為


credReadDomainCredentialsW 函式 (wincred.h)

CredReadDomainCredentials 函式會從使用者的認證集讀取網域認證。 使用的認證集是與目前權杖登入會話相關聯的認證集。 權杖不得停用使用者的 SID。

語法

BOOL CredReadDomainCredentialsW(
  [in]  PCREDENTIAL_TARGET_INFORMATIONW TargetInfo,
  [in]  DWORD                           Flags,
  [out] DWORD                           *Count,
  [out] PCREDENTIALW                    **Credential
);

參數

[in] TargetInfo

識別目標伺服器的目標資訊。 至少其中一個命名成員不得為 Null:NetbiosServerName、DnsServerName、NetbiosDomainName、DnsDomainName 或 DnsTreeName。

[in] Flags

控制函式作業的旗標。

已定義下列旗標:

CRED_CACHE_TARGET_INFORMATION

使用 CredGetTargetInfo快取 TargetInfo 以取得後續讀取。

[out] Count

在 Credentials陣列中傳回的認證計數。

[out] Credential

認證指標陣列的指標。 會傳回符合 TargetInfo 的最特定現有認證。 例如,如果各種類型的認證 (,CRED_TYPE_DOMAIN_PASSWORD和CRED_TYPE_DOMAIN_CERTIFICATE認證) 存在,則會傳回每種類型之一。 如果要對具名目標進行連線,則會使用這個最特定的認證。

只有 TargetInfo指定的認證類型。會傳回 CredTypes 陣列。 傳回的 Credentials 陣列會以 與 TargetInfo相同的順序排序。CredTypes 陣列。 也就是說,驗證套件會稍早在 TargetInfo中指定它,以指定慣用的認證類型。CredTypes 陣列。如果 TargetInfo。CredTypeCount 為零,以下列排序次序傳回 Credentials 陣列:

  • 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> \* 格式 < 的萬用字元網域認證完全相符。
  • NetBIOSDomainNameNetBIOSDomainName> \* 格式 < 的萬用字元網域認證完全相符
  • 名為 CRED_SESSION_WILDCARD_NAME 的認證。
  • 名為 「*」 的認證。
CredReadDomainCredentialsCredRead 不同,因為它會處理網域 (CRED_TYPE_DOMAIN_PASSWORD 或CRED_TYPE_DOMAIN_CERTIFICATE) 認證的 idiosyncrasies。 網域認證包含多個目標成員。

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