Saltar al contenido

¡Transforma tus conexiones en dinero para el final del año con nuestro nuevo Programa de Indicación de Clientes! Descubre más

Esta documentación es para la versión 4 y posteriores de App Builder, el nuevo nombre de Vinyl. Accede a la documentación de Vinyl aquí.

Ejemplo de Secuencia de Comandos: Validar un Campo de Contraseña Encriptada

Este ejemplo de complemento se diseñó para un formulario de inicio de sesión personalizado, donde el requisito era validar un intento de inicio de sesión con un campo de contraseña encriptado. Este secuencia de comandos proporciona validaciones uno a uno para el inicio de sesión con contraseña.

Actualmente, las validaciones estándar no admiten la validación contra campos cifrados, por lo que se utilizó un complemento para cumplir con el requisito.

Ejemplo de Secuencia de Comandos

using System;
using System.Linq;
using System.Text;
using Vinyl.Sdk.Events;
using Vinyl.Sdk.Filtering;

var tableId = Guid.Parse("TableID the Plugin will validate against");
var currentAccountID = Row["ViewAccountID"].Value;
string currentPassword = Row["CurrentPass"].GetValueAsString();
var filterBuilder = Services.GetService<FilterBuilder>();
var filter = filterBuilder.From(tableId).Where("AccountID", ComparisonOperator.Equals, currentAccountID);

var eventService = Services.GetService<IEventService>();
EventTable eventTable = await eventService.InvokeFilterEventAsync(filter);

var user = eventTable.Rows.SingleOrDefault();
if (user == null) {
    Fail();

    return;
}


string password = user["PasswordEncrypted"].Value as string;
if (password == null) {
    var passwordBytes = user["PasswordEncrypted"].GetValueAsByteArray();
    password = Encoding.UTF8.GetString(passwordBytes);
}


if (string.Equals(currentPassword, password)) {
    return;
}

Fail();