語言

KeyGenParameterSpec.Builder.SetUserAuthenticationValidityDurationSeconds 方法

定義

設定使用者成功認證後,該金鑰被授權使用的時間(秒)長度。

[Android.Runtime.Register("setUserAuthenticationValidityDurationSeconds", "(I)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=23)]
public Android.Security.Keystore.KeyGenParameterSpec.Builder SetUserAuthenticationValidityDurationSeconds(int seconds);
[<Android.Runtime.Register("setUserAuthenticationValidityDurationSeconds", "(I)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=23)>]
member this.SetUserAuthenticationValidityDurationSeconds : int -> Android.Security.Keystore.KeyGenParameterSpec.Builder

參數

seconds
Int32

若每次使用金鑰都必須進行使用者驗證,則以秒數為單位,持續時間為 -1。 價值 -1 或更高

傳回

屬性

備註

此方法在 API 等級 30 中被棄用。 請參見 setUserAuthenticationParameters(int, int)

設定使用者成功認證後,該金鑰被授權使用的時間(秒)長度。 若金鑰使用時需使用者驗證(參見 setUserAuthenticationRequired(布林)),此規定會生效。

預設情況下,若需使用者驗證,則必須在每次使用金鑰時進行驗證。

涉及金鑰且每次操作都需使用者驗證的密碼學操作只能使用生物辨識認證。 這是透過初始化一個密碼操作(簽名、密碼、Mac),將其包裝成生物識別提示(BiometricPrompt.CryptoObject),再用 CryptoObject 呼叫生物識別提示(BiometricPrompt.authenticate),只有在認證流程成功時才進行加密操作。

涉及金鑰的密碼操作,在成功使用者驗證事件後被授權使用一段時間,只能使用安全鎖屏認證。 若使用者需要驗證才能繼續,這些密碼操作會在初始化時拋出 UserNotAuthenticatedException。 此情況可透過使用者解鎖 Android 的安全鎖畫面,或透過 KeyguardManager.createConfirmDeviceCredentialIntent(CharSequence,CharSequence)啟動的確認憑證流程來解決。 解決後,若使用者驗證流程成功完成,使用此金鑰(或任何被授權在使用者認證後固定時間內使用的其他金鑰)初始化新的密碼操作,應能成功。

Android 參考資料。android.security.keystore.KeyGenParameterSpec.Builder.setUserAuthenticationValidityDurationSeconds

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於