共用方式為


Internet 驗證

System.Net 類別支援各種用戶端驗證 (Authentication) 機制,包括標準 Internet 驗證方法如基本的、摘要式、交涉的、NTLM 和 Kerberos 驗證,還有您可以建立的自訂方法。

驗證憑證儲存在 NetworkCredentialCredentialCache 類別中,它們會實作 ICredentials 介面。當這些類別的其中一個查詢憑證時,它傳回 NetworkCredential 類別的執行個體 (Instance)。驗證程序受 AuthenticationManager 類別管理,而實際的驗證程序由實作 IAuthenticationModule 介面的驗證模組類別執行。您必須在自訂驗證模組可以使用之前以 AuthenticationManager 註冊它;模組在預設情況下註冊為基本的、摘要式、交涉的、NTLM 和 Kerberos 驗證方法。

NetworkCredential 儲存一組與 URI 所識別的單一網際網路資源相關的憑證,並在對 GetCredential 方法的任何呼叫的回應中傳回它們。NetworkCredential 類別基本上被使用於存取限定數目的網際網路資源的應用程式,或在所有情況中使用同一組憑證的應用程式。

CredentialCache 類別儲存各種 Web 資源憑證的集合。呼叫 GetCredential 方法時,CredentialCache 傳回正確的憑證組,如 Web 資源 URI 和要求驗證配置所決定的。以不同驗證配置使用各種網際網路資源的應用程式可從使用 CredentialCache 類別得到益處,因為它儲存所有憑證並在被要求時提供它們。

網際網路資源要求驗證時,WebRequest.GetResponse 方法將 WebRequest 與憑證的要求一起送出至 AuthenticationManager。接著依照下列程序驗證要求:

  1. AuthenticationManager 依照它們註冊的順序,在每一個註冊的驗證模組上呼叫 Authenticate 方法。AuthenticationManager 使用第一個不傳回 null 的模組來實行驗證程序。程序的細節因驗證模組涉及的類型而異。
  2. 當驗證程序完成時,驗證模組會將 Authorization 執行個體傳回給包含存取網際網路資源所需資訊的 WebRequest

某些驗證配置不用事先要求資源即可以驗證使用者。應用程式可藉著以資源預先驗證 (Preauthenticate) 使用者來節省時間,這樣能減少至少一個到伺服器的來回行程。或者,它可以在程式啟動期間執行驗證,以便能更快速回應後來的使用者。能夠使用預先驗證的驗證配置設定 CanPreAuthenticate 屬性為 true

請參閱

基本和摘要式驗證 | NTLM 和 Kerberos 驗證 | Internet 安全性