Я бы рекомендовал не использовать IP-адрес для идентификации пользователя. См.: Is it reliable to use the IP address to identify a user on your website?
Использование файла cookie часто является лучшим способом отслеживания пользователей. Но, очевидно, если это проблема безопасности, то это можно обойти.
Если вы имеете дело с потенциальной атакой на отказ от обслуживания, то я думаю, что единственным безопасным вариантом является требование, чтобы пользователь заходил в систему, прежде чем позволить ему/ей щелкнуть ссылку. Если это не серьезная проблема с безопасностью (это нормально для плохих актеров, чтобы обойти), тогда просто нужно использовать файлы cookie для вашего сайта и отслеживать клики таким образом.
EDIT
Основываясь на ваш комментарий, я думаю, что вам нужно реализовать безопасный и содержательный способ для пользователя, чтобы войти в систему. Нет универсального способа успешной и надежной идентификации одного пользователя (однако вы можете определить это). Вам нужно будет войти в систему и принять файлы cookie (чтобы вы могли отслеживать их сеанс).
Это похоже на попытку не допустить, чтобы дети звонили в ваш звонок не один раз. Попытка определить, кто они из темной черноты в Интернете (IP-адрес и т. Д.), Похожа на попытку идентифицировать звонок, заставляя их кричать свое имя у вас через дверь. Вам нужно будет представить им более значимую и конкретную форму идентификации, которая может быть прикреплена к ним и отслеживаться, если вы хотите иметь любую надежду на то, чтобы остановить этот дверной звонок.
Вы используете встроенное членство в webforms, которое поставляется с ASP.NET? –
Это для удобства пользователя, или это проблема безопасности (например, DOS)? – JDB
Независимо от того, что вы используете, имейте в виду, что он может быть подделан. Вы попадаете в гонку вооружений между вами и нападавшим. * Знай своего врага! * – ixe013