Validate password
Validate password ( refUsuario ; senha {; digest} ) -> Resultado
Parâmetro | Tipo | Descrição | |
---|---|---|---|
refUsuario | Integer, Text | → | ID de usuário |
senha | Text | → | Senha não criptografada |
digest | Boolean | → | Senha digest = True, Senha texto plano (por padrão) = False |
Resultado | Boolean | ← | TRUE= senha válida; FALSE = senha inválida |
Esse comando não é seguro para thread e não pode ser usado em código adequado.
Descrição
Validate password retorna True se a cadeia passada em senha for a senha para a conta de usuário cujo número de referência é passado em refUsuario.
O parâmetro opcional digest indica se o parâmetro senha contém uma senha em texto plano ou na senha em forma hash (modo digest):
- Se passar True, indica que o parâmetro senha contém uma senha em forma hash (modo digest),
- Se passar False ou omite este parâmetro, indica que senha contém uma senha em texto plano.
Este parâmetro é particularmente útil quando se utilizam métodos base de autenticação, em particular o On 4D Mobile Authentication database method.
O comando é atrasado com o objetivo de evitar ataques de força bruta (flooding), em outras palavras, tentativas de múltiplas combinações de nomes de usuário/senha. Como resultado, depois da quarta chamada a este comando, não se executa por um período de 10 segundos. Este atraso é global a estação de trabalho.
Exemplo 1
O exemplo verifica se a senha do usuário “Hardy” for “Laurel”:
GET USER LIST(atNomeUsuario;aRefUsuario)
$vlElem:=Find in array(atNomeUsuario;"Hardy")
If($vlElem>0)
If(Validate password(aRefUsuario{$vlElem};"Laurel"))
ALERT("Sim")
Else
ALERT("Erro")
End if
Else
ALERT("Nome de usuário desconhecido")
End if
Exemplo 2
No On 4D Mobile Authentication database method, você pode provar um pedido de conexão (utilizando os usuários 4D da base). Pode escrever:
$0:=Validate password($1;$2;$3)