Autenticación (SDK de Windows Media Format 11)
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 cliente-servidor en la misma conexión y la versión 4.1 no mantiene una conexión persistente con el proxy. La serie Windows Media Services 9 de 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 indicó, 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 puntero IWMReaderCallback que recibió de la aplicación en el método IWMReader::Open . Si el objeto reader 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 de 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 reader 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.
Temas relacionados