Лучшим способом было бы отследить, кто за что проголосовал и за что на сервере (возможно, хранит его в базе данных). Чтобы сделать это, вы должны использовать систему аутентификации на вашем сайте (вероятно, форма аутентификации ) для идентификации пользователей. Поэтому каждый раз, когда кто-то пытается проголосовать, вы сначала проверяете в своем хранилище данных, проголосовал ли он и когда, и решаете, подтверждать ли голос или нет. Это самый надежный способ.
Если ваш сайт является анонимным (для голосования не требуется аутентификация), вы можете сохранить постоянный файл cookie на клиентском компьютере, который будет храниться в течение 24 часов и сообщать, что с этого компьютера уже было подано голосование. Помните, что куки могут быть отключены, удалены и не являются надежным способом идентификации данного пользователя.
Я использую ASP.NET MVC, поэтому сессия
переменные не обсуждаются.
Есть причина для этого? Сессии прекрасно работают в приложениях ASP.NET MVC. В вашем случае они не будут работать, потому что если пользователь закроет браузер, он потеряет сеанс.
Очевидно, он не сможет
отдать голос, из-за моего алгоритма,
но человек все равно останется
удалось позвонить
сервер. Так что, если он действительно хотел, он
будет обновлять страницу и
нажав на голосование и поставить
ненужная нагрузка на сервер
Автоматизированные боты могут также поставить ненужную нагрузку на ваш сервер, что гораздо важнее, чем нажатие одним пользователем F5.