> ## 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.

# CreateUser

> El método CreateUser de la API de administración de usuarios de ABBYY FlexiCapture crea un usuario a partir del nombre, el hash de la contraseña, el correo electrónico y el tenant, y devuelve el nuevo ID de usuario.

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

Crea un usuario nuevo.

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

```csharp theme={null}
int CreateUser( string userName, string fullName, string password, string email, string tenantName );
```

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

| Name         | Tipo     | Descripción                           |
| ------------ | -------- | ------------------------------------- |
| `userName`   | `string` | El nombre de usuario.                 |
| `fullName`   | `string` | El nombre completo del usuario.       |
| `password`   | `string` | El hash de la contraseña del usuario. |
| `email`      | `string` | El correo electrónico del usuario.    |
| `tenantName` | `string` | El nombre del tenant.                 |

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

| Tipo  | Descripción               |
| ----- | ------------------------- |
| `int` | El ID del usuario creado. |

<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;
}
```

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

La siguiente consulta T-SQL vuelve a calcular el hash para que pueda compararlo con el valor almacenado.

```sql theme={null}
Select Convert( nvarchar(255), HASHBYTES( 'SHA2_256', N'myPassword' + Convert( nvarchar(64), HASHBYTES('SHA2_256', UPPER(name) ), 2) ), 2)
```
