Как удостовериться, что пользователь может только голосовать однажды по опросу ASP.NET

Да. Просто выберите Экспорт файла ... из окна инструментов Project Explorer :

vanilla functionality

Если вы используете Rubberduck (отказ от ответственности: я управляю этим проектом OSS ), вы также можете сделать это из окна инструментов Code Explorer :

Rubberduck functionality

Для использования экспортированных модулей в других проектах VBA, вам нужно импортировать обратно. Вы можете сделать это по одному файлу за раз с помощью Project Explorer VBE или сразу за всеми файлами с помощью проводника кода Rubberduck .

Или вы можете просто перетащить файлы в Project Explorer .

Стандартные модули будут иметь расширение .bas; Модули класса будут иметь .cls; Модули UserForm будут иметь файл .frm и, вероятно, двоичный файл .frx, который должен находиться в той же папке, что и .frm, чтобы правильно импортировать обратно.

Модули документов (например, модули рабочих книг и рабочих листов, такие как Sheet1 и ThisWorkbook) не могут быть импортированы, но вы можете экспортировать их как файлы .cls из Project Explorer или как. файлы документов из Rubberduck.

Причина, по которой Rubberduck экспортирует модули документов с другим расширением файла, заключается в том, что они не могут быть импортированы обратно, поэтому атрибуты модуля и члена (которые можно обнаружить только при открытии экспортированных файлов в текстовом редакторе, например Notepad ++) могут ' не могут быть изменены так же, как обычные классовые модули.

6
задан Kredns 17 April 2013 в 15:42
поделиться

8 ответов

Зарегистрированные сессии являются единственным способом предотвратить двойное мошенничество с результатами голосования, но так как Вы явно просите способ зарегистрировать IP-адрес, можно достигнуть это через:

HttpContext.Current.Request.UserHostAddress;

или

HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];

Должно быть достаточно легко сохранить к DB и проверке, если IP уже существует на каждом опросе.

2
ответ дан 8 December 2019 в 03:54
поделиться

Вы можете только garuantee, что у каждого пользователя есть одно голосование, если можно аутентифицировать пользователя. Таким образом, Вам будет нужен механизм аутентификации, который позволит Вам препятствовать тому, чтобы пользователь регистрировал несколько учетных записей.

Я могу только видеть эту работу в среде, где пользователь инвестировал что-то в свою учетную запись, как подписчик для интернет-газеты или системы репутации как на StackOverflow.

13
ответ дан 8 December 2019 в 03:54
поделиться

IP-адреса не будут работать на миллионы людей, которые работают позади прокси также.

Cookie являются частичным решением, но голосующие роботы не могли просто отправить cookie.

3
ответ дан 8 December 2019 в 03:54
поделиться

Вы не можете ограничить единственное голосование одному IP-адресу. IP-адрес не равняется отдельному пользователю. IP-адрес представляет одного или несколько пользователей.

4
ответ дан 8 December 2019 в 03:54
поделиться

Если у Вас есть список зарегистрированных пользователей, пошлите им электронное письмо, содержащее уникальную ссылку, которая сгенерирована содержащий гуид (например), запишите GUID в базе данных и соответствии на голосовании.

Если Вы говорите об обычно публично доступном и безопасном, то IP-адрес самостоятельно не достаточен (Google электронное избирательное голосование за многие проблемы, связанные с безопасным голосованием общественности).

Вы думали об использовании одного из бесплатных избирательных сервисов?

Интернет-избирательный сервис Condorcet

4
ответ дан 8 December 2019 в 03:54
поделиться

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

1
ответ дан 8 December 2019 в 03:54
поделиться

Я соглашаюсь, что один единственный IP-адрес не соответствует отдельному пользователю, но я думаю, что это - самый безопасный способ поддержать одно голосование на человека. Я обычно использую cookie для отслеживания, кто голосовал. Конечно, это - легкий взлом, где можно просто удалить cookie и затем голосовать снова. Если голосование является просто некоторым случайным материалом затем, я действительно не забочусь. Если корректные голоса действительно имеют значение для Вашего приложения, затем используют IP-адрес.

0
ответ дан 8 December 2019 в 03:54
поделиться

Комбинация IP и useragent может дать Вам разумное решение.

0
ответ дан 8 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: