Condividi tramite


Autenticazione (Windows Media Format 11 SDK)

L'oggetto reader può gestire i problemi di autenticazione di rete, tra cui l'autenticazione del digest e l'autenticazione NTLM. In alcuni casi l'applicazione deve fornire le credenziali dell'utente tramite un'interfaccia di callback:

  • Autenticazione digest: l'applicazione deve implementare l'interfaccia IWMCredentialCallback , come descritto più avanti in questo argomento.

  • Autenticazione NTLM: il lettore risponde automaticamente con le credenziali di accesso dell'utente. Se l'utente corrente è autorizzato ad accedere al server, l'applicazione non deve eseguire alcuna operazione. Se l'utente non dispone dell'autorizzazione, l'applicazione deve implementare l'interfaccia IWMCredentialCallback .

    Nota

    Windows Media Services versione 4.1 non supporta l'autenticazione NTLM tramite un server proxy. L'autenticazione NTLM richiede diversi scambi client-server nella stessa connessione e la versione 4.1 non mantiene una connessione persistente con il proxy. Windows Media Services serie 9 in Microsoft Windows Server 2003 supporta l'autenticazione NTLM tramite un server proxy, purché il proxy supporti connessioni keep-alive.

     

Come indicato, in alcuni casi l'applicazione deve fornire le credenziali dell'utente. Ciò si verifica tramite l'interfaccia IWMCredentialCallback , che dispone di un singolo metodo , AcquireCredentials. Per supportare l'autenticazione, implementare questa interfaccia nell'applicazione. L'oggetto lettore esegue query per questa interfaccia chiamando QueryInterface sul puntatore IWMReaderCallback ricevuto dall'applicazione nel metodo IWMReader::Open . Se l'oggetto reader deve ottenere le credenziali dell'utente, chiama il metodo AcquireCredentials dell'applicazione.

Se le credenziali verranno inviate tramite la rete senza crittografia, il lettore imposta il flag di WMT_CREDENTIAL_CLEAR_TEXT nel parametro pdwFlags . In questo modo l'applicazione offre l'opportunità di avvisare l'utente che le proprie credenziali verranno inviate in testo normale.

In caso contrario, l'oggetto lettore crittografa automaticamente le credenziali prima di inviarle tramite la rete. L'applicazione può restituirle all'oggetto lettore in testo normale. Inoltre, se l'oggetto lettore imposta il flag di WMT_CREDENTIAL_ENCRYPT, significa che il lettore supporta l'acquisizione di credenziali crittografate dall'applicazione. In tal caso, l'applicazione può restituire le credenziali in testo normale oppure crittografarle usando la funzione CryptProtectData , descritta nella documentazione di Platform SDK. Se l'applicazione crittografa le credenziali, deve impostare il flag di WMT_CREDENTIAL_ENCRYPT nel parametro pdwFlags prima che il metodo restituisca.

In genere, non è necessario crittografare i dati, perché l'oggetto lettore crittografa i dati se necessario. Tuttavia, la crittografia potrebbe essere utile se l'applicazione mantiene il nome utente e la password in memoria, perché impedisce a un utente malintenzionato di controllare un dump di memoria del processo.

Interfaccia IWMCredentialCallback

Interfaccia IWMReader