Verificare che i dati immessi dall'utente rispettino determinati criteri è di fondamentale importanza per non incorrere in sgradite sorprese.
La classe StringValidator, del namespace System.Configuration, può essere utile al fine di verificare che una stringa contenga un numero minimo di caratteri, non ve ne siano di indesiderati e che non superi una determinata lunghezza.
I criteri della validazione vengono definiti creando una nuova istanza della classe.
Il costruttore StringValidator(Int32) verifica il numero minimo di caratteri, l'overload StringValidator(Int32, int32) verifica il numero minimo e massimo di caratteri, infine la versione del costruttore StringValidator(Int32, int32, String) aggiunge a quanto detto la verifica per i caratteri con consentiti.
Realizziamo una semplice pagina, con una TextBox per l'input dell'utente, un Button per inviare i dati al server e infine una Label per visualizzare il risultato della validazione.
Alla pressione del bottone sarà eseguito il metodo:
protected void ValidaInput_Click(object sender, EventArgs e) { StringValidator myStringValidator = new StringValidator(2, 8, "%&#@"); string stringToValidate = UserInput.Text; if (myStringValidator.CanValidate(stringToValidate.GetType())) { try { myStringValidator.Validate(stringToValidate); MyLabel.Text = "stringa corretta"; } catch (ArgumentException ex) { MyLabel.Text = ex.Message.ToString(); } } }
Con il metodo CanValidate verifichiamo che l'oggetto da validare corrisponda al tipo che il validatore si aspetta, dopodiché con il metodo Validate verifichiamo che la stringa rispetti i criteri definiti dall'istanza di StringValidator.
Il namespace System.Configuration contiene altri validatori, derivati tutti dalla classe astratta ConfigurationValidatorBase, che si possono rivelare utili in diverse situazioni:
- CallbackValidator
- DefaultValidator
- IntegerValidator
- LongValidator
- PositiveTimeSpanValidator
- RegexStringValidator
- StringValidator
- SubclassTypeValidator
- TimeSpanValidator
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Implementare il throttling in ASP.NET Core
Cache policy su route groups di Minimal API in ASP.NET Core 7
Taggare la output cache in base al routing in ASP.NET Core
Catturare la telemetria degli eventi di output cache in ASP.NET Core
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Load test di ASP.NET Core con k6
Short-circuiting della Pipeline in ASP.NET Core