0 votes

Empêcher un utilisateur anonyme de soumettre un formulaire plusieurs fois en ASP.NET sans SqlMembershipProvider

J'ai un formulaire simple qui dépose les réponses sélectionnées dans un fichier XML. Comment empêcher un utilisateur anonyme de soumettre ce formulaire plusieurs fois ?

Je ne cherche pas une solution totalement infaillible, et je suis limité par le fait que je ne peux pas utiliser la base de données, et donc pas de SqlMembershipProvider.

La vérification des cookies fonctionnera-t-elle ? Comment bien faire ?

Merci d'avance.

Mise à jour : Pour être plus précis, il ne s'agit pas seulement d'une soumission accidentelle du formulaire, mais d'empêcher un utilisateur qui a visité le site une semaine auparavant de soumettre à nouveau ce formulaire.

1voto

Dan Kennedy Points 442

En bref, vous ne pouvez pas être totalement fiable. Si vous ne vous souciez pas d'être à l'épreuve des balles comme vous le dites, vous pouvez soit

a) Faire persister un cookie sur la machine cliente et le vérifier la prochaine fois que quelqu'un poste. Évidemment, l'utilisateur peut supprimer les cookies, donc ce n'est pas brillant. b) Vous pourriez stocker l'adresse IP d'où le message a été envoyé. Le problème, c'est que cela empêcherait plusieurs utilisateurs d'utiliser la même adresse IP, c'est-à-dire un proxy, et que le même utilisateur pourrait poster depuis différents endroits.

Ni l'un ni l'autre n'est particulièrement bon et si c'est possible, je recommanderais de leur demander de saisir une adresse e-mail au début, de stocker le message comme non confirmé, d'envoyer un lien de confirmation par e-mail et de ne rendre le message officiel que s'ils cliquent dessus. Encore une fois, ce n'est pas infaillible car cela n'empêche pas les gens de poster avec plusieurs comptes e-mail, mais c'est un peu mieux que les options ci-dessus.

HTH

0voto

cjk Points 27463

Utilisez les variables de session pour garder une trace de ce que fait votre utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X