Ir para o conteúdo

Exemplo de Script – Validar um Campo de Senha Criptografada

Este exemplo de plug-in foi projetado para um formulário de login personalizado, onde o requisito era validar uma tentativa de login em um campo de senha criptografado. Este script fornece validações individuais para login de senha.

As validações padrão atualmente não suportam validação em campos criptografados, portanto, um plug-in foi usado para atender ao requisito.

Exemplo de Script

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