4D v16.3

Método base On SQL Authentication

Inicio

 
4D v16.3
Método base On SQL Authentication

Método base On SQL Authentication 


 

$1, $2, $3 -> Método base On SQL Authentication -> Resultado 
Parámetro Tipo   Descripción
$1  Texto in Nombre de usuario
$2  Texto in Contraseña
$3  Texto in (Opcional) Dirección IP del cliente al origen de la petición
Resultado  Booleano in True = petición aceptada, False = petición rechazada

  

El Método base On SQL Authentication puede utilizarse para filtrar las peticiones enviadas al servidor SQL integrado de 4D. Este filtro puede estar basado en el nombre y contraseña como también de manera opcional en la dirección IP del usuario. El desarrollador puede utilizar su propia tabla de usuarios o la de los usuarios 4D para evaluar los identificadores de conexión. Una vez validada la conexión, el comando CHANGE CURRENT USER puede utilizarse para controlar el acceso de las peticiones dentro de la base 4D.

Cuando existe, el Método base On SQL Authentication es llamado automáticamente por 4D o 4D Server en cada conexión externa al servidor SQL. Por lo tanto el sistema interno de gestión de los usuarios de 4D no está activado. La conexión se acepta sólo si el método de base devuelve True en $0 y si el comando CHANGE CURRENT USER se ha ejecutado con éxito. Si una de estas condiciones no se cumple, la petición se rechaza.

Nota: la instrucción SQL LOGIN(SQL_INTERNAL;$usuario;$contraseña) no llama al Método base On SQL Authentication ya que es una conexión interna en este caso.

El método de base recibe hasta tres parámetros de tipo Texto, pasados por 4D ($1, $2 y $3) y devuelve un booleano, $0. Esta es la descripción de estos parámetros:

ParámetrosTipoDescripción
$1TextoNombre de usuario
$2TextoContraseña
$3Texto(opcional) Dirección IP del cliente al origen de la petición (*)
$0BooleanoTrue = petición aceptada, False = petición rechazada

(*) 4D devuelve las direcciones IPv4 en un formato híbrido IPv6/IPv4 escrito con un prefijo de 96 bits, por ejemplo ::ffff:192.168.2.34 para la dirección IPv4 192.168.2.34. Para mayor información, consulte la sección  Soporte de IP v6.

Debe declarar estos parámetros de esta forma:

  ` Método de base On Web Authentication
 
 C_TEXT($1;$2;$3;$4)
 C_BOOLEAN($0)
  ` Código para el método

La contraseña ($2) se recibe como texto estándar.

Debe controlar los identificadores de la conexión SQL en el Método base On SQL Authentication. Por ejemplo, puede verificar el nombre y la contraseña utilizando una tabla de usuarios personalizada. Si los identificadores son válidos, pase True en $0 para aceptar la conexión y la petición. 4D abre una sesión SQL para el usuario. De lo contrario, pase False en $0; en este caso, la conexión se rechaza.

Nota: si el Método base On SQL Authentication no existe, la conexión se evalúa utilizando el sistema integrado de gestión de usuarios de 4D (si está activo, en otras palabras, si una contraseña ha sido asignada al Diseñador). Si este sistema no está activado, los usuarios están conectados con los derechos de acceso del Diseñador (acceso libre).

Si pasa True en $0, debe llamar exitosamente al comando CHANGE CURRENT USER en el Método base On SQL Authentication para que la petición sea aceptada y para que 4D abra una sesión SQL para el usuario.

El uso de este comando se recomienda porque permite un mayor nivel de seguridad. Esta autenticación virtual tiene la doble ventaja de permitir el control de las acciones de conexión y de ocultar para el exterior los identificadores de la conexión en la sesión SQL 4D.

Cuando el sistema de contraseñas integrado de 4D no está activo, la ejecución del comando CHANGE CURRENT USER no tiene efecto; los usuarios se conectan con los derechos de acceso del Diseñador.

Este ejemplo del Método base On SQL Authentication verifica que la petición de conexión provenga de la red interna, valida los identificadores y luego asigna los derechos de accesos "sql_user" para la sesión SQL.

 C_TEXT($1;$2;$3;$4)
 C_BOOLEAN($0)
  `$1: usuario
  `$2: contraseña
  `{$3: dirección IP del cliente}
 ON ERR CALL("SQL_error")
 If(DirIPInterna($3))
  `El método DirIPInterna verifica si la dirección IP es interna
    If($1="victor") & ($2="hugo")
       CHANGE CURRENT USER("sql_user";"")
       If(OK=1)
          $0:=True
       Else
          $0:=False
       End if
    Else
       $0:=False
    End if
 Else
    $0:=False
 End if

 
PROPIEDADES 

Producto: 4D
Tema: Métodos base

 
HISTORIA 

Creado por: 4D v11 SQL Release 2

 
ARTICLE USAGE

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)