Authentification (Kit de développement logiciel (SDK) Windows Media Format 11
L’objet lecteur peut gérer les défis d’authentification réseau, notamment l’authentification digeste et l’authentification NTLM. Dans certains cas, l’application doit fournir les informations d’identification de l’utilisateur via une interface de rappel :
Authentification Digest : l’application doit implémenter l’interface IWMCredentialCallback , comme décrit plus loin dans cette rubrique.
Authentification NTLM : le lecteur répond automatiquement avec les informations d’identification d’ouverture de session de l’utilisateur. Si l’utilisateur actuel est autorisé à se connecter au serveur, l’application n’a rien à faire. Si l’utilisateur n’a pas d’autorisation, l’application doit implémenter l’interface IWMCredentialCallback .
Notes
Windows Media Services version 4.1 ne prend pas en charge l’authentification NTLM via un serveur proxy. L’authentification NTLM nécessite plusieurs échanges client-serveur sur la même connexion, et la version 4.1 ne conserve pas de connexion persistante avec le proxy. La série Windows Media Services 9 dans Microsoft Windows Server 2003 prend en charge l’authentification NTLM via un serveur proxy, tant que le proxy prend en charge les connexions conservées.
Comme indiqué précédemment, dans certains cas, l’application doit fournir les informations d’identification de l’utilisateur. Cela se produit via l’interface IWMCredentialCallback , qui a une seule méthode, AcquireCredentials. Pour prendre en charge l’authentification, implémentez cette interface dans votre application. L’objet lecteur interroge cette interface en appelant QueryInterface sur le pointeur IWMReaderCallback qu’il a reçu de l’application dans la méthode IWMReader::Open . Si l’objet lecteur doit obtenir les informations d’identification de l’utilisateur, il appelle la méthode AcquireCredentials de l’application.
Si les informations d’identification sont envoyées sur le réseau sans chiffrement, le lecteur définit l’indicateur WMT_CREDENTIAL_CLEAR_TEXT dans le paramètre pdwFlags . Cela permet à l’application d’avertir l’utilisateur que ses informations d’identification seront envoyées en texte brut.
Sinon, l’objet lecteur chiffre automatiquement les informations d’identification avant de les envoyer sur le réseau. L’application peut les renvoyer à l’objet lecteur en texte brut. En outre, si l’objet lecteur définit l’indicateur WMT_CREDENTIAL_ENCRYPT, cela signifie que le lecteur prend en charge l’obtention d’informations d’identification chiffrées à partir de l’application. Dans ce cas, l’application peut retourner les informations d’identification en texte brut ou les chiffrer elle-même à l’aide de la fonction CryptProtectData , qui est décrite dans la documentation du Kit de développement logiciel (SDK) de plateforme. Si l’application chiffre les informations d’identification, elle doit définir l’indicateur WMT_CREDENTIAL_ENCRYPT dans le paramètre pdwFlags avant que la méthode ne retourne.
En règle générale, il n’est pas nécessaire de chiffrer les données, car l’objet lecteur chiffre les données si nécessaire. Toutefois, le chiffrement peut être utile si l’application conserve le nom d’utilisateur et le mot de passe en mémoire, car il empêche un attaquant d’inspecter un vidage de mémoire du processus.