autorizzazione asp.net tramite url
Domanda
Probabilmente questa domanda è stata posta prima, ma sembra che non riesca a formulare la mia ricerca abbastanza correttamente per trovare la risposta.
Normalmente quando ti registri per accedere a un forum su Internet, ti viene inviata un'e-mail di autorizzazione e puoi fare clic su un collegamento che ti porta a una pagina che esegue l'autorizzazione.
Quello che voglio è inviare una mail a un utente già creato (non connesso però) e lasciargli accettare una proposta facendo clic su un link nella posta. Il link ofcourse punta a una pagina che esegue le operazioni del database e mostra un qualche tipo di risultato.
Quali tecniche e / o percorsi dovrei seguire per implementarlo? E poiché questo è legato alla sicurezza, a cosa dovrei fare attenzione?
Cordiali saluti, Casper
Soluzione
Quando invii l'e-mail, genera una grande stringa casuale e salvala in una tabella con il loro ID utente e qualche indicazione su cosa farà il collegamento.
Quindi inviare loro l'e-mail con un collegamento a DoSomething.aspx? id = long_string_here
.
Scrivi DoSomething.aspx
in modo che cerchi la stringa lunga e presenti all'utente una conferma di ciò che faranno e un pulsante per farlo. Non è richiesto l'accesso. Se lo desideri, puoi anche lasciare l'utente connesso.
Al termine dell'azione o ogni X giorni, eliminare la stringa dalla tabella.
Preoccupazioni:
- Le persone cattive possono provare a colpire la tua pagina con stringhe casuali. Se le stringhe sono abbastanza lunghe e abbastanza casuali, questo non importa, ma potresti voler limitare l'accesso alla pagina o impedire più di X richieste da un indirizzo IP in un determinato periodo.
- I controllori di spam aggressivi possono seguire il link dal corpo dell'e-mail. Assicurarsi che non venga eseguita alcuna operazione semplicemente accedendo alla pagina; l'utente dovrebbe fare clic su un pulsante o altrimenti causare un POST.