Autenticação (SDK do Windows Media Format 11)
O objeto leitor pode lidar com desafios de autenticação de rede, incluindo autenticação de resumo e autenticação NTLM. Em alguns casos, o aplicativo deve fornecer as credenciais do usuário por meio de uma interface de retorno de chamada:
Autenticação digest: o aplicativo deve implementar a interface IWMCredentialCallback , conforme descrito posteriormente neste tópico.
Autenticação NTLM: o leitor responde automaticamente com as credenciais de logon do usuário. Se o usuário atual estiver autorizado a fazer logon no servidor, o aplicativo não precisará fazer nada. Se o usuário não tiver autorização, o aplicativo deverá implementar a interface IWMCredentialCallback .
Observação
Os Serviços de Mídia do Windows versão 4.1 não dão suporte à autenticação NTLM por meio de um servidor proxy. A autenticação NTLM requer várias trocas cliente-servidor na mesma conexão e a versão 4.1 não mantém uma conexão persistente com o proxy. O Windows Media Services 9 Series no Microsoft Windows Server 2003 dá suporte à autenticação NTLM por meio de um servidor proxy, desde que o proxy dê suporte a conexões keep alive.
Conforme observado, em alguns casos o aplicativo deve fornecer as credenciais do usuário. Isso ocorre por meio da interface IWMCredentialCallback , que tem um único método, AcquireCredentials. Para dar suporte à autenticação, implemente essa interface em seu aplicativo. O objeto reader consulta essa interface chamando QueryInterface no ponteiro IWMReaderCallback que ele recebeu do aplicativo no método IWMReader::Open . Se o objeto leitor precisar obter as credenciais do usuário, ele chamará o método AcquireCredentials do aplicativo.
Se as credenciais forem enviadas pela rede sem criptografia, o leitor definirá o sinalizador WMT_CREDENTIAL_CLEAR_TEXT no parâmetro pdwFlags . Isso dá ao aplicativo a oportunidade de avisar o usuário de que suas credenciais serão enviadas em texto sem formatação.
Caso contrário, o objeto leitor criptografa automaticamente as credenciais antes de enviá-las pela rede. O aplicativo pode devolvê-los ao objeto leitor em texto sem formatação. Além disso, se o objeto leitor definir o sinalizador WMT_CREDENTIAL_ENCRYPT, isso significa que o leitor dá suporte à obtenção de credenciais criptografadas do aplicativo. Nesse caso, o aplicativo pode retornar as credenciais em texto sem formatação ou criptografá-las usando a função CryptProtectData , que é descrita na documentação do SDK da Plataforma. Se o aplicativo criptografar as credenciais, ele deverá definir o sinalizador WMT_CREDENTIAL_ENCRYPT no parâmetro pdwFlags antes que o método retorne.
Geralmente, não é necessário criptografar os dados, pois o objeto leitor criptografa os dados, se necessário. No entanto, a criptografia poderá ser útil se o aplicativo mantiver o nome de usuário e a senha na memória, pois impede que um invasor inspecione um despejo de memória do processo.
Tópicos relacionados