Objetos de Datos Parametrizados
En escenarios típicos, los desarrolladores restringen el acceso a las filas mediante el uso de los objetos de datos. WHERE
cláusula. Esto ocurre en tiempo de diseño. El objeto de datos puede estar restringido en tiempo de ejecución por criterios de enlace de panel o página. Por ejemplo, un panel de una sola fila debe estar enlazado de tal manera que el objeto de datos devuelva una y solo una fila. Independientemente de esto, el usuario tiene permiso para ver cualquier fila en el objeto de datos dado, siempre que no esté excluida por los criterios de enlace del objeto de datos. WHERE
cláusula.
Sin embargo, en algunos casos, los desarrolladores pueden necesitar restringir el acceso a las filas de objetos de datos en tiempo de diseño en función de los criterios de vinculación proporcionados en tiempo de ejecución. En estos casos, el usuario solo debería poder acceder a las filas que pueda identificar.
Por ejemplo, imaginemos una aplicación de autorregistro que permite a los usuarios crear cuentas. La aplicación envía un correo a una dirección de correo proporcionada por el usuario. El correo contiene un enlace a la aplicación de autorregistro. El enlace en sí contiene un token secreto que se pasa como criterio vinculante a la página de confirmación. Esto permite al usuario ver y confirmar su registro pendiente.
En el caso de un registro automático, el desarrollador debe asegurarse de que el objeto de datos de la página de confirmación esté vinculado al token secreto. De lo contrario, un usuario malintencionado podría simplemente eliminar el token secreto de la URL para ver otros registros pendientes. Esto permitiría al usuario confirmar un registro para una dirección de correo a la que no tiene acceso.
Para evitar que esto suceda, el desarrollador debe asegurarse de que el usuario proporcione su token secreto al consultar las confirmaciones pendientes. Esto se puede lograr mediante un objeto de datos parametrizado.
Para crear un objeto de datos parametrizado, el desarrollador debe indicar que una o más columnas son "vinculantes". En tiempo de ejecución, antes de ejecutar el evento Filter, App Builder afirmará que el cliente ha suministrado valores para cada columna de enlace. Si no se ha suministrado un valor de columna de enlace, App Builder generará una excepción. Esto evita que los usuarios (malintencionados o no) ejecuten una consultar que recupere todas las filas del objeto de datos. En el ejemplo de autorregistro, el usuario solo puede recuperar una confirmación pendiente si ya conoce el token secreto.
Problemas y Limitaciones Conocidos
- Los desarrolladores no pueden utilizar la vista Resultados para consultar un objeto de datos parametrizado. La vista Resultados se ejecuta sin ningún criterio vinculante.
- Objeto de datos parametrizado Los eventos no se pueden programar. App Builder no proporciona criterios vinculantes al consultar el objeto de datos del evento programado.