Запрет анонимного пользователя многократно отправлять форму в ASP.NET без SqlMembershipProvider - PullRequest
0 голосов
/ 27 апреля 2009

У меня есть простая форма, которая выводит выбранные ответы в файл XML. Как запретить анонимному пользователю отправлять эту форму много раз?

Я не ищу полностью пуленепробиваемое решение, и у меня есть ограничение, что я не могу использовать базу данных, и поэтому нет SqlMembershipProvider.

Будет ли работать проверка файлов cookie? Как это сделать правильно?

Заранее спасибо.

Обновление: Если быть более точным, я имею в виду не только случайную отправку формы, но и предотвращение повторной отправки этой формы пользователем, посетившим сайт неделю назад.

Ответы [ 2 ]

1 голос
/ 27 апреля 2009

Короче говоря, вы не можете полностью надежно. Если вас не беспокоит что-то пуленепробиваемое, как вы говорите, вы можете либо

a) Сохраните файл cookie на клиентском компьютере и проверьте его при следующей публикации. Очевидно, что пользователь может удалить куки, поэтому не блестящие. б) Вы можете сохранить IP-адрес, с которого он был отправлен. Проблема заключается в том, что вы запретите нескольким пользователям, отправляющим один и тот же IP-адрес, т.е. прокси, и один и тот же пользователь может публиковать сообщения из разных мест.

Ни один из них не особенно хорош, и если это возможно, я бы рекомендовал попросить их ввести адрес электронной почты в начале, сохранить сообщение как неподтвержденное, отправить ссылку для подтверждения по электронной почте и сделать сообщение официальным только тогда, когда они нажмут на него. , Опять же, не пуленепробиваемый, поскольку он не мешает людям отправлять сообщения с несколькими учетными записями электронной почты, но это немного лучше, чем варианты выше.

НТН

0 голосов
/ 27 апреля 2009

Используйте переменные сеанса, чтобы отслеживать, что делает ваш пользователь.

...