Método de base On Web Authentication

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 2004 (Modificado)


El Método de base On Web Authentication está a cargo de administrar el acceso al motor del servidor Web. Es llamado automáticamente por 4D o 4D Server cuando una petición de un navegador Web requiere la ejecución de un método 4D en el servidor (llamada de un método vía un URL 4DACTION o 4DCGI URL, una etiqueta 4DSCRIPT, etc.).

Este método recibe seis parámetros de tipo Texto, pasados por 4D: $1, $2, $3, $4, $5, y $6, y devuelve un booleano, $0. La descripción de estos parámetros es la siguiente:

ParámetrosTipoDescripción
$1TextoURL
$2TextoEncabezado HTTP + cuerpo HTTP (hasta el limite de los 32 kb)
$3TextoDirección IP del navegador
$4TextoDirección IP que llama al servidor
$5TextoNombre del usuario
$6TextoContraseña

$0 Booleano True = petición aceptada, False = petición rechazada

Debe declarar estos parámetros de esta forma:

      ` Método de base On Web Authentication

   C_TEXT($1;$2;$3;$4;$5;$6)
   C_BOOLEAN($0)

      ` Código para el método

Nota: Todos los parámetros del Método de base On Web Authentication no serán llenados. La información recibida por el método de base depende las opciones que haya seleccionado previamente en la caja de diálogo de Preferencias (por favor consulte la sección Connection Security).

URL

El primer parámetro ($1) es el URL introducido por el usuario en el área ubicación de su navegador Web, menos la dirección local.

Tomemos el ejemplo de una conexión de Intranet. Supongamos que la dirección IP de su equipo servidor Web 4D es 123.4.567.89. La siguiente tabla muestra los valores de $1 dependiendo del URL introducido en el navegador Web:

URL introducido en el navegador Web Valor del parámetro $1
123.4.567.89/
http://123.4.567.89/
123.4.567.89/Clientes/Clientes
http://123.4.567.89/Clientes/Clientes
http://123.4.567.89/Clientes/Añadir/Clientes/Añadir
123.4.567.89/Hacer_esto/Si_OK/Hacer_eso/Hacer_esto/Si_OK/Hacer_eso

Encabezado y cuerpo de la petición HTTP

El segundo parámetro ($2) es el encabezado y el cuerpo de la petición HTTP enviada por el navegador Web. Note que esta información se pasa al Método de base On Web Authentication tal como está. El contenido varía en función del tipo de navegador Web que esté intentando la conexión. Si su aplicación manipula esta información, es su decisión si analiza el encabezado y el cuerpo.

Nota: Para mayor información sobre este parámetro, consulte la descripción del Método de base On Web Connection.

Dirección IP del navegador

El tercer parámetro $3 recibe la dirección IP del equipo navegador. Esta información permite distinguir entre las conexiones de Intranet e Internet.

Dirección IP para llamar al servidor

El cuarto parámetro $4 recibe la dirección IP utilizada para llamar al servidor Web. 4D a partir de la versión 6.5 autoriza el multi-homing, permitiendo explotar equipos con más de una dirección IP. Para mayor información, consulte la sección Web Server Settings.

Nombre del usuario y contraseña

Los parámetros $5 y $6 reciben el nombre de usuario y contraseña introducidos por el usuario en la caja de diálogo estándar de identificación mostrada por el navegador. Esta caja de diálogo aparece para cada conexión, si una opción de gestión de contraseñas ha sido seleccionada en la caja de diálogo de Preferencias (ver la sección Seguridad de las conexiones).

Nota: Si el nombre de usuario enviado por el navegador existe en 4D, el parámetro $6 (la contraseña del usuario) no se devuelve por razones de seguridad.

Parámetro $0

El método de base On Web Authentication devuelve un booleano en $0:

Si $0 es True, la conexión es aceptada.

Si $0 es False, la conexión es rechazada.

El Método de base On Web Connection sólo se ejecuta si la conexión ha sido aceptada por On Web Authentication.

Advertencia: Si no se pasa ningún valor en $0 o si $0 no se define en el Método de base On Web Authentication, la conexión será considerada como aceptada, y el Método de base On Web Connection se ejecuta.

Notas

No llame ningún elemento de interferencia en el Método de base On Web Authentication (ALERT, DIALOG, etc.), de lo contrario su ejecución será interrumpida y la conexión será rechazada. Lo mismo ocurre si un error se produce durante la ejecución del método de base.

Es posible prohibir la ejecución por 4DACTION o 4DMETHOD de cada método de proyecto utilizando la opción "Disponible vía 4DACTION, 4DMETHOD y 4DSCRIPT" en la caja de diálogo de las Propiedades del método. Para mayor información, consulte la sección Seguridad de las conexiones.

Llamadas del método de base On Web Authentication

El Método de base On Web Authentication se llama automáticamente, sin importar el modo, cuando una petición o proceso requiere la ejecución de un método 4D. También se llama cuando el servidor Web recibe un URL estático inválido (por ejemplo, si la página estática solicitada no existe).

Por lo tanto el Método de base On Web Authentication se llama en los siguientes casos:

cuando 4D recibe un URL que comienza por 4DACTION/

cuando 4D recibe un URL que comienza por 4DMETHOD/

cuando 4D recibe un URL que comienza por 4DCGI/

cuando 4D recibe un URL solicitando una página estática que no existe

cuando 4D procesa una etiqueta 4DSCRIPT en una página semidinámica

cuando 4D procesa una etiqueta 4DLOOP basada en un método en una página semidinámica.

Note que el Método de base On Web Authentication NO se llama cuando el servidor recibe un URL solicitando una página estática válida.

Ejemplos

1. Ejemplo del Método de base On Web Authentication en modo BASIC:

      `Método de base On Web Authentication
   C_TEXT($5;$6;$3;$4)
   C_TEXT($usuario;$contraseña;$IPNavegador;$IPServidor)
   C_BOOLEAN($4Dusuario)
   ARRAY TEXT($usuarios;0)
   ARRAY LONGINT($nums;0)
   C_LONGINT($upos)
   C_BOOLEAN($0)

   $0:=False 

   $usuario:=$5
   $contraseña:=$6
   $IPNavegador:=$3
   $IPServidor:=$4

      `Por razones de seguridad, rechazar nombres que contengan @
   If (WithWildcard($usuario) | WithWildcard($contraseña))
      $0:=False
         `El método WithWildcard se describe a continuación
   Else
         `Verificar para ver si es un usuario 4D
      GET USER LIST($usuarios;$nums) 
      $upos:=Find in array($usuarios;$usuario)
      If ($upos > 0)
         $usuario4D:=Not(Is user deleted($nums{$upos}))
      Else
         $usuario4D:=False
      End if
   
      If (Not($usuario4D))
            `No es un usuario definido en 4D, buscar en la tabla de usuarios Web
         QUERY([UsuariosWeb];[UsuariosWeb]usuario=$usuario;*)
         QUERY([UsuariosWeb]; & [UsuariosWeb]contraseña=$contraseña)
         $0:=(Records in selection([UsuariosWeb]) = 1)
      Else
         $0:=True
      End if
   End if
      `¿Esta es una conexión de intranet?
   If (Substring($IPNavegador;1;7) # "192.100.")
      $0:=False
   End if

2. Ejemplo del Método de base On Web Authentication en modo DIGEST:

      `Método de base On Web Authentication
   C_TEXT($1;$2;$5;$6;$3;$4)
   C_TEXT($usuario)
   C_BOOLEAN($0)
   $0:=False
   $usuario:=$5
      `Por razones de seguridad, rechazar los nombres que contengan @
   If(WithWildcard($usuario))
   $0:=False
      `El método WithWildcard se describe a continuación
   Else
      QUERY([UsuariosWeb];[UsuariosWeb]usuario=$usuario)
      If(OK=1)
         $0:=Validate Digest Web Password($usuario;[UsuariosWeb]contraseña)
      Else
         $0:=False`Usuario inexistente
      End if
   End if

El método de proyecto WithWildcard es el siguiente:
      `Método WithWildcard
      `WithWildcard ( Cadena) -> Booleano
      `WithWildcard ( Nombre ) -> Contiene un carácter arroba

   C_INTEGER($i)
   C_BOOLEAN($0)
   C_TEXT($1)

   $0:=False
   For($i;1;Length($1))
      If (Character code(Substring($1;$i;1)) = Character code("@"))
         $0:=True
      End if
   End for

Ver también

Método de base On Web Connection, Métodos de base de datos, Seguridad de las conexiones, URLs y acciones de formularios.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente