Stanotte, fino circa alle 2:00 ho lavorato sul problema della HIP nelle pagine di .TEXT di UgiDotNet. Alla fine ho realizzato una bozza del sistema, che mi pare possa funzionare bene e l'ho passata a d Andrea Saltarello, per avere un suo parere e se la cosa funziona ovviamente installarlo.

La struttura di .TEXT, come segnalato da Davide in un post di stamattina, mi ha convito ad usare il seguente meccanismo per realizzare la protezione:

  1. ho basato il lavoro sul componente descritto in MSDN in questo articolo
  2. ho creato uno UserControl che contiene una Immagine, una textbox e un validatore. Lo usercontrol è del tutto autonomo, nel senso che genera automaticamente la sequenza di lettere e cifre da rendere nell'immagine, valida il contenuto della textbox e visualizza il messaggio di errore quando serve.
  3. la sequenza di lettere e cifre è realizzata prendendo i primi 6 caratteri di un Guid generato con System.Guid.NewGuid()
  4. Sono intervenuto su tutti gli skin di default, inserendo un riferimento al mio usercontrol nella giusta posizione. A questo la form accetta il commento solo se l'immagine e la texbox contengono la medesima stringa, in caso contrario genera una nuova stringa e chiede che la validazione sia effettuata nuovamente, senza perdere il testo del commento imputato.
  5. Alla fine ho passato tutto ad Andrea che quando avrà un po' di tempo gli darà un'occhiata. Lo zip, che al termine del lavoro renderò pubblico per gli altri weblog che usano .TEXT, contiene gli assembly del generatore di HIP, tutte le UI delle skin e quella dello UserControl. Lo UserControl non ha un codebehind, ma usa uno script inserito in calce all'HTML per consentire una facile customizzazione della generazione della stringa di validazione che al momento corrisponde ad una riga di codice.

Spero che tutto funzioni a dovere e che Andrea trovi il tempo di installarlo, perchè i dannati spammer continuano a rompere...

powered by IMHO