Saltar al contenido

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();