Come al solito la fretta è cattiva consigliera...ed anche questa volta lo dimostra. Oggi è stata una giornata molto "di fretta" per me (ed infatti tra 30 minuti devo scappare di nuovo), ed a tutti i costi ho voluto infilare nel poco tempo libero che ho avuto a disposizione l'implementazione del controllo FormShield in .Text. (Managggia a me!....quando mi metto in testa una cosa....)
Il tutto sembrava funzionare benone, ho fatto dei velocissimi test per verificare che l'integrazione fosse possibile (ho creato un semplicissimo user control, l 'ho messo nello user control PostComment.aspx e via), ma, ora che sto testando più a fondo, vedo che purtroppo non funziona: la validazione non avviene.
Il problema, dopo un pò di ricerche con Reflector, è dovuto al fatto che il controllo utilizzato necessita del viewstate, che invece .TEXT si preoccupa di disabilitare nel modo più forte possibile (come si nota analizzando la classe DottextViewStatelessPage, che già dal nome dice tutte...).
In questo modo il controllo FormShield non si tiene memorizzato il testo generato tra un post e l'altro e quindi l'eventuale CompareValidator restituisce sempre true.
In ogni caso ho gia contattato l'autore del controllo per offrigli una mano nel modificare questo comportamento, che è effettivamente, in casi come questo, troppo limitante.
Vediamo come si evolverà la cosa: il controllo in sè è ottimo, molto potente e configurabile, speriamo di poter far sparire in fretta questo "neo".