2013-09-28 3 views
0

Я строю сайт. Я хочу, чтобы пользователь подавал голоса без входа в систему. Но каждый пользователь должен разрешать только один голос для каждого вопроса (подобно системе голосования с переполнением стека). Я вижу somethig аналогичный в урбанистическом словаре (http://www.urbandictionary.com/), где вы можете подавать голоса без входа в систему. Как это сделать в ASP.NET MVC4?Как найти пользователя проголосовал.

Я не хочу использовать файлы cookie, так как кто-то может легко очистить файлы cookie и проголосовать снова. Как вы думаете, http://www.urbandictionary.com/ делает это?

+0

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

+1

Без какой-либо проверки подлинности ваши пользователи (по крайней мере, технически эксперт) могут голосовать в любое время, когда захотят. Если вы используете IP-адрес в качестве формы аутентификации, тогда его можно легко взломать пользователями с назначенным адресом dynamyc, отключив маршрутизатор. Stackoverflow не позволяет upvotes, если у вас нет на 15 повторений (и вы положительно идентифицированы) – Steve

+0

Как вы думаете, что делает Urban Dictionary? Я попробовал очистить свои наличные деньги cookie и войти с помощью другого ip, но он все еще мешает мне голосовать? –

ответ

-1

Я не пробовал, но я предлагаю вам попробовать использовать Session для этого места.

Например:

Когда пользователь нажимает на voute, установите:

Session["isVouted"] = true 

Теперь вы можете проверить: if((bool)Session["isVouted"]){don't allow to voute}. Для лучшего результата вы можете установить время сеанса в течение одного часа или одного дня.

+0

Это неправильно. Поскольку сеанс может быть легко очищен, что не помешает кому-то писать бота, который будет публиковать фальшивые голоса. –

+0

@SriwanthaSriAravinda Если пользователь знает, как он создан, ничто не мешает ему писать бот. –

0

Я не думаю, что это будет возможно, если у вас нет своего рода постоянного хранилища. т.е. db или файлы cookie. Единственный недостаток файлов cookie заключается в том, что они могут быть очищены.

Смежные вопросы