> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ValidateUser

> El método ValidateUser de la API de administración de usuarios de ABBYY FlexiCapture comprueba que un nombre de usuario y el hash de la contraseña coincidan con las credenciales almacenadas, e incluye un ejemplo de hash.

<div id="what-it-does">
  ## Qué hace
</div>

Comprueba si el nombre de usuario y la contraseña coinciden con los valores de la base de datos.

<div id="definition">
  ## Definición
</div>

```csharp theme={null}
bool ValidateUser( string userName, string passwordHash );
```

<div id="parameters">
  ## Parámetros
</div>

| Name           | Tipo     | Descripción               |
| -------------- | -------- | ------------------------- |
| `userName`     | `string` | El nombre de usuario.     |
| `passwordHash` | `string` | El hash de la contraseña. |

<div id="returned-value">
  ## Valor devuelto
</div>

| Tipo   | Descripción                                                                                                                                                                          |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `bool` | Indica si el nombre de usuario y la contraseña coinciden con los valores de la base de datos. Valores posibles: `true` (los valores coinciden) y `false` (los valores no coinciden). |

<div id="calculate-the-password-hash">
  ## Calcular el hash de la contraseña
</div>

El siguiente código de C# calcula el hash de la contraseña con una sal derivada del login.

```csharp theme={null}
public static string GetPasswordHashWithSalt( string login, string password )
{
    string salt = GetPasswordSha256Hash(login.ToUpper());
    return GetPasswordSha256Hash(password + salt);
}

private static string GetPasswordSha256Hash( string password )
{
    Encoding enc = Encoding.GetEncoding("UTF-16");
    byte[] buffer = enc.GetBytes(password);
    var cryptoTransformSHA256 = new SHA256CryptoServiceProvider();
    string hash = BitConverter.ToString(cryptoTransformSHA256.ComputeHash(buffer)).Replace("-", "");
    return hash;
}
```
