All'interno delle pagine di inserimento dati sarebbe buona cosa implementare un sistema che cerchi di individuare i tentativi di inserimento multipli da parte di un utente, ad esempio attraverso il refresh della pagina.
Un comodo sistema consiste nello sfruttare a dovere gli eventi della pagina, in modo che venga scritto un cookie al primo inserimento ed utilizzato successivamente per effettuare un controllo.
<SCRIPT RUNAT="SERVER" LANGUAGE="C#"> string cookiename; void Page_Init() { // imposto il nome del cookie cookiename = "refreshed_" + Server.UrlEncode(Request.Url.PathAndQuery); } void Page_PreRender() { if (Page.IsPostBack) { // segno che è stato inserito Response.Cookies[cookiename].Value = "true"; } else { // svuoto il cookie se sono di nuovo sulla form di inserimento Response.Cookies[cookiename].Value = "false"; } } void insertNewRecord (Object o, EventArgs e) { if (Request.Cookies[cookiename] != null && Convert.ToBoolean(Request.Cookies[cookiename].Value)) result.Text = "Già inserito"; else { // codice che inserisce il nuovo record result.Text = "Inserito con successo!"; } } </SCRIPT> <form runat="server"> <asp:button runat="server" onClick="insertNewRecord" Text="Inserisci!" /> <asp:literal id="result" runat="server" /> </form>
Questa modifica può anche essere fatta sfruttando una classe Page di base, da cui poi far ereditare le pagine della nostra applicazione che hanno bisogno di questa protezione.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.