Exemplo de Script - Validar um Campo de Senha Criptografado
Este exemplo de Plugin 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 um para um para login de senha.
Atualmente, as validações padrão não oferecem suporte à validação em campos criptografados, então 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();