4D v16.3Método base On Web Authentication |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Método base On Web Authentication
|
$1, $2, $3, $4, $5, $6 -> Método base On Web Authentication -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
$1 | Texto |
![]() |
URL | |||||
$2 | Texto |
![]() |
Encabezado HTTP + Cuerpo HTTP | |||||
$3 | Texto |
![]() |
Dirección IP del navegador | |||||
$4 | Texto |
![]() |
Dirección IP del servidor | |||||
$5 | Texto |
![]() |
Nombre de usuario | |||||
$6 | Texto |
![]() |
Contraseña | |||||
Resultado | Booleano |
![]() |
True = petición aceptada, False = petición rechazada | |||||
El Método 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 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ámetros | Tipo | Descripción |
$1 | Texto | URL |
$2 | Texto | Encabezado + Cuerpo HTTP (32 KB máximo) |
$3 | Texto | Dirección IP del navegador |
$4 | Texto | Dirección IP que llama al servidor |
$5 | Texto | Nombre del usuario |
$6 | Texto | Contraseñ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 base On Web Authenticationno se llenarán. La información recibida por el método de base depende las opciones que haya seleccionado previamente en la caja de diálogo de Propiedades de la base. Consulte la sección Seguridad de las conexiones).
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 |
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 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.
Notas:
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 base On Web Authentication devuelve un booleano en $0:
El Método 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 base On Web Authentication, la conexión se considerará como aceptada y se ejecuta el Método base On Web ConnectionInstalación y activación.
Notas:
El Método 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 base On Web Authentication se llama en los siguientes casos:
Note que el Método base On Web Authentication NO se llama cuando el servidor recibe un URL solicitando una página estática válida.
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
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
Producto: 4D
Tema: Métodos base
Modificado: 4D v13
Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)