в моем приложении asp.net mvc у меня есть модель опроса, которую может создать любой. Кроме того, я хочу, чтобы люди из определенной части мира участвовали (голосовали) в опросе. Это простая работа, если я знаю местоположение (это может быть город, страна, штат и т. д.). я хочу добавить это ограничение по местоположению во время создания опроса (т. е. пользователь может сказать, что люди из Исламабада, Пенджаба или Пакистана) могут голосовать или заполнять эту форму опроса. Кроме того, я хочу добавить, что ограничение по местоположению применимо (или ожидается) для небольшого количества опросов (максимум 5 процентов), поэтому как наиболее эффективно реализовать эту функцию.
Ограничение пользователя на основе геолокации в asp.net mvc
Ответы (2)
Вы можете сделать это несколькими способами:
- Определите, откуда пользователь, на основе предыдущего вопроса о его местоположении. Не пуленепробиваемый, так как пользователь может легко сказать, что он оттуда, где его нет.
- Получите список сопоставления IP -> Country, который предоставит вам поиск IP-адреса клиента по сравнению с его местоположением. Вы бы ограничили на основе этого.
person
Matthew Abbott
schedule
20.07.2011
+1 за вариант 2, но как насчет проверки ограничений для 100% опросов, тогда как ограничение распространяется только на 5% опросов?
- person Muhammad Adeel Zahid; 20.07.2011
ограничение может быть на уровне города, страны, штата и т. д. Как я могу контролировать этот сценарий при создании опроса и когда опрос публикуется конечным пользователем
- person Muhammad Adeel Zahid; 29.07.2011
Вы можете определить чье-либо местоположение с помощью IP-адреса. Существует множество сервисов, которые предлагают определение местоположения по IP-адресу. Они дадут вам приблизительное местоположение пользователей на основе этого.
Вот пример службы:
Вы также можете узнать их местоположение с помощью функций геолокации HTML5.
В вашем случае использование IP-адреса, вероятно, достаточно хорошо. Вариант HTML5 удобен, потому что, если у пользователя нет устройства GPS в своей системе, он в конечном итоге возвращается к использованию местоположения IP-адреса.
Чтобы получить IP-адрес пользователя в ASP.NET, вы можете использовать
Request.Servervariables("REMOTE_ADDR")
person
Paul Mendoza
schedule
20.07.2011
+1 за функцию html-5. можете ли вы рассмотреть мой комментарий к ответу Мэтью
- person Muhammad Adeel Zahid; 20.07.2011