4D v16.3Método de base On Web Authentication |
||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Método de base On Web Authentication
|
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 de 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 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.
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 de 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 de 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 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:
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.
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 de Método de base On Web Authentication en modo DIGEST:
// Método base On Web Authentication
C_TEXT($1;$2;$5;$6;$3;$4)
C_TEXT($user)
C_BOOLEAN($0)
$0:=False
$user:=$5
// Por razones de seguridad, rechazar los nombres que contengan @
If(WithWildcard($user))
$0:=False
// El método <span class="rte4d_met">WithWildcard</span> se describe a continuación
Else
QUERY([WebUsers];[WebUsers]User=$user)
If(OK=1)
$0:=WEB Validate digest($user;[WebUsers]password)
Else
$0:=False // Usuario inexistente
End if
End if
// Método WithWildcard
// WithWildcard ( String ) -> Booleano
// WithWildcard ( Name ) -> Contiene un carácter arroba
C_LONGINT($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
Método base On Web Connection
Métodos de base de datos
Seguridad de las conexiones
URLs y acciones de formularios
Producto: 4D
Tema: Servidor Web
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)