73 messaggi dal 16 novembre 2001
Vorrei bloccare l'accesso a una pagina dopo un tot di tentativi falliti di inserimento del codice di accesso.
Ho pensato che una via veloce per risolvere ciò consisterebbe nel memorizzare in una variabile application(indirizzoIP:data) = numero tentativi.
Quando il numero tentativi supera il limite consentito vieni bloccato.

In questo modo si possono generare n variabili application che si caricano in memoria del server.
Qual'è normalmente il ciclo vitale dell'oggetto application? Ci sono altre soluzioni più eleganti senza ricorrere a database o file di testo?
2.190 messaggi dal 04 marzo 2004
Contributi | Blog
theproject wrote:
Vorrei bloccare l'accesso a una pagina dopo un tot di tentativi falliti di inserimento del codice di accesso.
Ho pensato che una via veloce per risolvere ciò consisterebbe nel memorizzare in una variabile application(indirizzoIP ata) = numero tentativi.
Quando il numero tentativi supera il limite consentito vieni bloccato.
L'idea che hai avuto è veloce ma in linea di principio l'oggetto Application dovrebbe essere utilizzato per informazioni condivise da tutta l'applicazione e non per i singoli utenti, per tale scenario è più adatto l'uso di Session o ancora meglio Cache.

In questo modo si possono generare n variabili application che si caricano in memoria del server.
Qual'è normalmente il ciclo vitale dell'oggetto application?
L'oggetto Application vive con l'applicazione stessa e può "riavviarsi" in certe condizioni di carico o per riavvio del webserver. Al riavvio viene creato un nuovo oggetto Application e vengono persi tutti i dati. A questo comportamento sottostanno anche Session e Cache.
Ci sono
altre soluzioni più eleganti senza ricorrere a database o file di testo?
Il vantaggio di usare database o file di testo è che le informazioni persistite con queste modalità sopravvivono all'applicazione stessa, quindi se si tratta di un dato importante è meglio usare questi supporti. Se ci fai caso Membership Provider predefinito di ASP.NET registra i tentativi di login falliti sul db

Alessio Leoncini (WinRTItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer
73 messaggi dal 16 novembre 2001
Ciao Alessio grazie per la risposta.
In realtà la pagina in questione non è una pagina di accesso a zona riservata con login/pass.
Si tratta di una pagina dove tu devi inserire un codice di tracciabilità che trovi sulla bottiglia e visualizzi determinate informazioni.

Vorrei pertanto evitare al client di fare molti tentativi cercando di azzeccare un codice esistente.

Potrei inserire una CaptchaImage per evitare automazioni oppure bloccare per X minuti l'accesso a quell'IP.

Ho letto che per ClassicAsp l'oggetto application muore dopo X minuti che l'ultimo client si è disconnesso dal server. Forse X è derminato da session.timeout. Ma non so se è lo stesso per .net

In questo caso l'oggetto session è da escludere xk riavviando il browser perdo le info.

Voglio provare con la cache. Dovrebbe essere possibile impostare il tempo di espirazione e non dovrei sovraccaricare il server di variabili come per application

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.