驗證 (Windows Media Format 11 SDK)
讀取器物件可以處理網路驗證挑戰,包括摘要式驗證和 NTLM 驗證。 在某些情況下,應用程式必須透過回呼介面提供使用者的認證:
摘要式驗證:應用程式必須實作 IWMCredentialCallback 介面,如本主題稍後所述。
NTLM 驗證:讀取器會自動回應使用者的登入認證。 如果目前的使用者有權登入伺服器,應用程式就不需要執行任何動作。 如果使用者沒有授權,應用程式必須實作 IWMCredentialCallback 介面。
注意
Windows 媒體服務 4.1 版不支援透過 Proxy 伺服器進行 NTLM 驗證。 NTLM 驗證需要相同連線上的數個用戶端-伺服器交換,4.1 版不會與 Proxy 保持持續連線。 只要 Proxy 支援保持連線,Microsoft Windows Server 2003 中的 Windows Media Services 9 系列就支援 NTLM 驗證。
如前所述,在某些情況下,應用程式必須提供使用者的認證。 這會透過具有單一方法AcquireCredentials的IWMCredentialCallback介面發生。 若要支援驗證,請在應用程式中實作此介面。 讀取器物件會在IWMReader::Open方法中從應用程式收到的IWMReaderCallback指標上呼叫QueryInterface來查詢此介面。 如果讀取器物件需要取得使用者的認證,它會呼叫應用程式的 AcquireCredentials 方法。
如果認證會透過網路傳送而不加密,讀取器會在 pdwFlags 參數中設定WMT_CREDENTIAL_CLEAR_TEXT旗標。 這可讓應用程式有機會警告使用者,其認證將會以純文字傳送。
否則,讀取器物件會在透過網路傳送認證之前自動加密認證。 應用程式可以純文字將它們傳回給讀取器物件。 此外,如果讀取器物件設定WMT_CREDENTIAL_ENCRYPT旗標,表示讀取器支援從應用程式取得加密的認證。 在此情況下,應用程式可以傳回純文字的認證,或使用 CryptProtectData 函式自行加密,如 Platform SDK 檔中所述。 如果應用程式加密認證,它必須在方法傳回之前,在 pdwFlags 參數中設定WMT_CREDENTIAL_ENCRYPT旗標。
一般而言,不需要加密資料,因為讀取器物件會在必要時加密資料。 不過,如果應用程式將使用者名稱和密碼保留在記憶體中,加密可能會很有用,因為它可防止攻擊者檢查進程的記憶體傾印。
相關主題