CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION結構 (credentialprovider.h)

包含認證的詳細數據。

語法

typedef struct _CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION {
  ULONG ulAuthenticationPackage;
  GUID  clsidCredentialProvider;
  ULONG cbSerialization;
  byte  *rgbSerialization;
} CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION;

成員

ulAuthenticationPackage

類型: ULONG

驗證套件的唯一標識碼。 呼叫 LsaLogonUser 時,需要此參數。 在認證UI案例中,此值會在透過 Serialization傳送串行化之前設定。 這與 LsaLookupAuthenticationPackage 所傳回的驗證套件值相同。 內容提供者可以使用此參數來判斷它們是否能夠傳回此驗證套件的認證。 撰寫自己的驗證套件的開發人員可能會提供自己的價值。

clsidCredentialProvider

類型: GUID

認證提供者的 CLSID。 認證提供者會在串行化期間,將自己的CLSID指派給這個成員。 認證 UI 會忽略此成員。

cbSerialization

類型: ULONG

rgbSerialization 所指向之認證的大小,以位元組為單位。

rgbSerialization

類型: 位元組*

包含串行化認證資訊的位元組數位。 此數據的確切格式取決於認證提供者的目標驗證套件。

備註

一旦使用者將認證資訊輸入認證磚,它就必須放入緩衝區中。 封裝這項資訊稱為串行化,無論案例是使用登入UI還是認證UI,都是必要的。 CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION會定義串行化的結構。 串行化之後,傳送緩衝區的位置取決於它是登入UI或認證UI案例。 使用登入UI時,緩衝區會傳遞至 Winlogon。 在認證 UI 案例中,此緩衝區會傳回給呼叫的應用程式,然後用它來驗證使用者。

重要  

即使您實作CPUS_LOGON CREDENTIAL_PROVIDER_USAGE_SCENARIO,您也不會直接呼叫 LsaLogonUser。 系統會處理該呼叫。 您只需要將認證傳遞至 Winlogon 即可。

 
如果從 SetSerialization 收到輸入認證,認證提供者也可以列舉認證磚。 其中一個很有用的範例是,如果使用者提供無效的使用者密碼組合。 認證UI會將認證傳回認證提供者,因為它們無效。 認證提供者可以選擇向用戶顯示已填入使用者名稱的磚。

輸入認證可以採用許多不同的形式。 接收串行化認證時,認證提供者很重要。 這可能包括不完整或部分認證。 在許多情況下,不完整的輸入認證是呼叫端想要的認證類型提示。 使用此程式的其中一個案例是與只想要從使用者收集智慧卡認證的來電者搭配使用。 在 CPUS_LOGON 使用案例期間,系統會使用 SetSerialization 來填入遠端電腦的某些資訊。 登入UI會呼叫 SetSerialization 零次或每次列舉週期一次。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 credentialprovider.h