/ / C # Applicazione Windows (non wpf) maschera il numero della carta di credito nella casella di testo inserita, seguito dalla convalida e dall'elaborazione del numero della carta di credito - c #, winforms, carta di credito, pci-compliance

C # Windows Application (not wpf) maschera il numero della carta di credito nella casella di testo come inserito, seguito dalla convalida e dall'elaborazione del numero della carta di credito - c #, winforms, credit-card, pci-compliance

Sto supportando un'applicazione Windows C # cheaccetta ed elabora la carta di credito. Ma a causa di nuove regole, ho bisogno di mascherare il numero della carta di credito mentre viene inserito, quindi se il primo numero è 4, è visibile fino a quando non viene immesso il numero successivo (ad esempio 9), quindi la casella di testo mostra * 9 .

Ho pensato di usare maskedtextbox ma poi i caratteri sono tutti "*" ma ho bisogno di mostrare l'ultimo carattere digitato.

Ci sono delle buone pratiche per farlo? tenere presente che ho bisogno di quei numeri e di eseguire le convalide prima che la carta di credito venga elaborata, quindi elaborare la carta di credito e archiviarla nel database. Ho già un campo CC nel database crittografato.

Qualsiasi suggerimento / aiuto sarebbe molto apprezzato.

risposte:

1 per risposta № 1

Il modo semplice sarebbe avere due caselle di testo. Uno in cui l'utente inserisce effettivamente il numero in, un altro che mostra la versione mascherata di quell'input. Metti il ​​controllo mascherato sul controllo di entrata.

Uso TextChanged o KeyUp eventi per tenere traccia delle modifiche e aggiornare.

per esempio

if (textBoxEntry.Text.Length <= 1)
{
textBoxMasked.Text = textBoxEntry.Text;
}
else
{
string lastChar = textBoxEntry.Text.Substring(textBoxEntry.Text.Length-1, 1);
textBoxMasked.Text = lastChar.PadLeft(textBoxEntry.Text.Length, "*");
}

Oltre a ciò, probabilmente hai problemi con PCIconformità. Non è sufficiente crittografare questi valori nel database, è necessario disporre di politiche di gestione delle chiavi, programmi di rotazione delle chiavi e quantità di heap in più. Si spera che tu sappia già tutto questo, ma solo menzionarlo se non ne sei a conoscenza.