Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
On Web Authentication database method
|
$1, $2, $3, $4, $5, $6 -> On Web Authentication database method -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
$1 | Texto |
![]() |
URL | |||||
$2 | Texto |
![]() |
cabeçalho HTTP + corpo HTTP | |||||
$3 | Texto |
![]() |
Endereço IP do navegador | |||||
$4 | Texto |
![]() |
Endereço IP do servidor | |||||
$5 | Texto |
![]() |
Nome de usuário | |||||
$6 | Texto |
![]() |
Senha | |||||
Resultado | Booleano |
![]() |
Verdadeiro = pedido aceito, Falso = pedido recusado | |||||
O On Web Authentication database method administra o acesso ao motor do servidor web. É chamado automaticamente por 4D ou 4D Server quando uma petição de um navegador web pedir a execução de um método 4D no servidor (chamada de um método através um URL 4DACTION ou uma etiqueta 4DSCRIPT, etc.).
Este método recebe seis parâmetros de tipo Texto, passados por 4D: $1, $2, $3, $4, $5, e $6 e retorna um booleano, $0. A descrição desses parâmetros é a seguinte:
Parâmetros | Tipo | Descrição |
$1 | Texto | URL |
$2 | Texto | HTTP cabeçalho + corpo HTTP (32 KB máximo) |
$3 | Texto | endereço IP do Web client (navegador) |
$4 | Texto | endereço IP do servidor |
$5 | Texto | nome de usuário |
$6 | Texto | Senha |
$0 | Booleano | True = petição aceita, False = petição recusada |
Deve declarar esses parâmetros desta forma:
` On Web Authentication Database Method
C_TEXT($1;$2;$3;$4;$5;$6)
C_BOOLEAN($0)
` Código para o método
Nota: todos os parâmetros do Método de banco On Web Authentication não seriam preenchidos. A informação recebida pelo método de banco depende das opções que tiver selecionado previamente na caixa de diálogo de Propriedades do banco. Consulte a seção Conexões de Segurança.).
O primeiro parâmetro ($1) é a URL introduzida pelo usuário na área localização de seu navegador web, do qual o endereço local foi removido.Tomemos o exemplo de uma conexão de Intranet. Suponhamos que o endereço IP de sua máquina servidor web 4D é 123.4.567.89. A seguinte tabela mostra os valores de ($1) dependendo da URL introduzida no navegador web:
URL inserida na área de localização do navegador Valor do parâmetro $1 123.4.567.89
/ http://123.4.567.89 / 123.4.567.89/Clientes /Clientes http://123.4.567.89/Clientes /Customers http://123.4.567.89/Clientes/Adicionar /Clientes/Adicionar 123.4.567.89/Fazer_Isso/Se_OK/Fazer_Isso /Fazer_Isso/Se_OK/Fazer_Aquilo
Notas:
O terceiro parâmetro $3 recebe a direção IP do máquina navegador. Esta informação permite distinguir entre as conexões de Intranet e Internet.
O quarto parâmetro $4 recebe o endereço IP utilizado para chamar ao servidor Web. 4D a partir da versão 6.5 autoriza o multi-homing, permitindo explorar máquinas com mais de um endereço IP. Para maior informação, consulte a seção QR DELETE COLUMN.
Note: se o nome de usuário enviado pelo navegador existir em 4D, o parâmetro $6 (a senha do usuário) não é retornada por razões de segurança.
O Método de banco On Web Connection database method só é executado se a conexão tiver sido aceita por On Web Authentication.
AVISO: se não for passado nenhum valor em $0 ou se $0 não se define no On Web Authentication database method , a conexão se considerará como aceita e se executa o On Web Connection database method.O On Web Authentication database method é chamada automaticamente, sem importar o modo, quando uma petição ou processo requisitar a execução de um método 4D. Também se chama quando o servidor web recebe uma URL estática inválida (por exemplo, se a página estática solicitada não existir).
Portanto o On Web Authentication database method se chama nos seguintes casos:
Note que o On Web Authentication database method NÃO se chama quando o servidor recebe uma URL solicitando uma página estática válida.
Exemplo do On Web Authentication database methodXML DOM em modo BASIC:
`Método de banco On Web Authentication
C_TEXT($5;$6;$3;$4)
C_TEXT($usuário;$senha;$IPNavegador;$IPServidor)
C_BOOLEAN($4Dusuário)
ARRAY TEXT($usuários;0)
ARRAY LONGINT($nums;0)
C_LONGINT($upos)
C_BOOLEAN($0)
$0:=False
$usuário:=$5
$senha:=$6
$IPNavegador:=$3
$IPServidor:=$4
`Por razões de segurança, recusar nomes que contenham @
If(WithWildcard($usuario)|WithWildcard($senha))
$0:=False
`O método WithWildcard é descrito abaixo
Else
`Verificar para ver se é um usuário 4D
GET USER LIST($usuários;$nums)
$upos:=Find in array($usuários;$usuário)
If($upos >0)
$usuario4D:=Not(Is user deleted($nums{$upos}))
Else
$usuario4D:=False
End if
If(Not($usuario4D))
`Não é um usuário definido em 4D, procurar na tabela de usuários Web
QUERY([UsuariosWeb];[UsuariosWeb]usuario=$usuario;*)
QUERY([UsuariosWeb]; & [UsuariosWeb]senha=$senha)
$0:=(Records in selection([UsuariosWeb])=1)
Else
$0:=True
End if
End if
`Esta é uma conexão de intranet?
If(Substring($IPNavegador;1;7)#"192.100.")
$0:=False
End if
Exemplo do On Web Authentication database method em modo DIGEST:
`Método de banco On Web Authentication
C_TEXT($1;$2;$5;$6;$3;$4)
C_TEXT($usuario)
C_BOOLEAN($0)
$0:=False
$usuario:=$5
`Por razões de segurança, recusar os nomes que contenham @
If(WithWildcard($usuario))
$0:=False
`O método WithWildcard é descrito a seguir
Else
QUERY([UsuariosWeb];[UsuariosWeb]usuario=$usuario)
If(OK=1)
$0:=WEB Validate digest($usuario;[UsuariosWeb]senha)
Else
$0:=False `Usuário inexistente
End if
End if
O método de projeto WithWildcardéo seguinte:
`Método WithWildcard
`WithWildcard ( String) -> Booleano
`WithWildcard ( Nome ) -> Contém um caráctere 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
Produto: 4D
Tema: Métodos banco de dados
Modificado: 4D v13
Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)