共用方式為


ISCardISO7816::ExternalAuthenticate 方法

[ ExternalAuthenticate 方法可用於需求一節中指定的作業系統。 它不適用於 Windows Server 2003 service Pack 1 (SP1) 及更新版本、Windows Vista、Windows Server 2008 和後續版本的作業系統。 智慧卡模組提供類似的功能。

ExternalAuthenticate方法會建構應用程式通訊協定資料單位 (APDU) 命令,以條件更新安全性狀態,在智慧卡不信任時驗證電腦的身分識別。

此命令會根據先前由 (卡片發出的挑戰,使用 (是或否) 計算的結果,例如,INS_GET_CHALLENGE命令) 、金鑰 (可能儲存在卡片中的秘密) ,以及介面裝置所傳輸的驗證資料。

語法

HRESULT ExternalAuthenticate(
  [in]      BYTE         byAlgorithmRef,
  [in]      BYTE         bySecretRef,
  [in]      LPBYTEBUFFER pChallenge,
  [in, out] LPSCARDCMD   *ppCmd
);

參數

byAlgorithmRef [in]

卡片中演算法的參考。

如果這個值是零,這表示沒有提供任何資訊。 在發出命令之前,或是在資料欄位中提供之前,已知演算法的參考。

bySecretRef [in]

秘密的參考。

意義
無資訊
位位置:00000000
沒有提供任何資訊。 在發出命令之前或是在資料欄位中提供之前,已知秘密的參考。
全域 ref
位位置:0-------
全域參考資料 (MF 特定索引鍵) 。
特定 ref
位位置:1-------
特定參考資料 (DF 特定索引鍵) 。
RFU
位位置:-xx-----
00 (其他值是 RFU) 。
祕密
位位置:---xxxxx
秘密數目。

 

pChallenge [in]

驗證相關資料的指標。 此參數可以是 Null

ppCmd [in, out]

在輸入時, ISCardCmd 介面物件的指標或 Null

傳回時,它會填入此作業所建構的 APDU 命令。 如果 ppCmd 設定為 Null,則會在內部建立 智慧卡ISCardCmd 物件,並使用 ppCmd 指標傳回。

傳回值

方法會傳回下列其中一個可能的值。

傳回碼 描述
S_OK
作業已成功完成。
E_INVALIDARG
傳遞不正確參數。
E_POINTER
傳入錯誤的指標。
E_OUTOFMEMORY
記憶體不足。

 

備註

若要讓封裝的命令成功,從卡片取得的最後一個挑戰必須有效。

例如,不成功的比較可能會記錄在卡片 (,以限制使用參考資料) 的進一步嘗試次數。

如需此介面提供之所有方法的清單,請參閱 ISCardISO7816

除了上述 COM 錯誤碼之外,如果呼叫智慧卡函式來完成要求,此介面可能會傳回智慧卡錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值

規格需求

需求
最低支援的用戶端
Windows XP [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2003 [僅限傳統型應用程式]
用戶端支援結束
Windows XP
伺服器終止支援
Windows Server 2003
標頭
Scardssp.h
類型程式庫
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816定義為 53B6AA68-3F56-11D0-916B-00AA00C18068

另請參閱

InternalAuthenticate

ISCardISO7816