Compartir a través de


Autenticación (SDK de Windows Media Format 11)

[La característica asociada a esta página, SDK de Windows Media Format 11, es una característica heredada. Se ha reemplazado por lector de origen y receptor escritor. lector de origen y receptor escritor se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use lector de origen y escritor receptor en lugar de SDK de Windows Media Format 11, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

El objeto lector puede controlar los desafíos de autenticación de red, incluida la autenticación implícita y la autenticación NTLM. En algunos casos, la aplicación debe proporcionar las credenciales del usuario a través de una interfaz de devolución de llamada:

  • Autenticación implícita: la aplicación debe implementar la interfaz IWMCredentialCallback, como se describe más adelante en este tema.

  • Autenticación NTLM: el lector responde automáticamente con las credenciales de inicio de sesión del usuario. Si el usuario actual está autorizado para iniciar sesión en el servidor, la aplicación no tiene que hacer nada. Si el usuario no tiene autorización, la aplicación debe implementar la interfaz IWMCredentialCallback.

    Nota

    Windows Media Services versión 4.1 no admite la autenticación NTLM a través de un servidor proxy. La autenticación NTLM requiere varios intercambios de servidor cliente en la misma conexión y la versión 4.1 no mantiene una conexión persistente con el proxy. Windows Media Services 9 Series en Microsoft Windows Server 2003 admite la autenticación NTLM a través de un servidor proxy, siempre y cuando el proxy admita conexiones de mantenimiento activo.

     

Como se indica, en algunos casos, la aplicación debe proporcionar las credenciales del usuario. Esto ocurre a través de la interfaz IWMCredentialCallback, que tiene un único método, AcquireCredentials. Para admitir la autenticación, implemente esta interfaz en la aplicación. El objeto lector consulta esta interfaz llamando a queryInterface en el IWMReaderCallback puntero que recibió de la aplicación en el método IWMReader::Open. Si el objeto lector necesita obtener las credenciales del usuario, llama al método AcquireCredentials de la aplicación.

Si las credenciales se enviarán a través de la red sin cifrado, el lector establece la marca WMT_CREDENTIAL_CLEAR_TEXT en el parámetro pdwFlags. Esto ofrece a la aplicación la oportunidad de advertir al usuario de que sus credenciales se enviarán en texto sin formato.

De lo contrario, el objeto lector cifra automáticamente las credenciales antes de enviarlos a través de la red. La aplicación puede devolverlas al objeto lector en texto sin formato. Además, si el objeto lector establece la marca WMT_CREDENTIAL_ENCRYPT, significa que el lector admite la obtención de credenciales cifradas de la aplicación. En ese caso, la aplicación puede devolver las credenciales en texto sin formato o, de lo contrario, cifrarlas mediante la función CryptProtectData, que se describe en la documentación del SDK de plataforma. Si la aplicación cifra las credenciales, debe establecer la marca WMT_CREDENTIAL_ENCRYPT en el parámetro pdwFlags antes de que el método devuelva.

Por lo general, no es necesario cifrar los datos, ya que el objeto lector cifra los datos si es necesario. Sin embargo, el cifrado puede ser útil si la aplicación mantiene el nombre de usuario y la contraseña en memoria, ya que impide que un atacante inspeccione un volcado de memoria del proceso.

de interfaz IWMCredentialCallback

de la interfaz IWMReader de