Ограничение пользователя на основе геолокации в asp.net mvc

в моем приложении asp.net mvc у меня есть модель опроса, которую может создать любой. Кроме того, я хочу, чтобы люди из определенной части мира участвовали (голосовали) в опросе. Это простая работа, если я знаю местоположение (это может быть город, страна, штат и т. д.). я хочу добавить это ограничение по местоположению во время создания опроса (т. е. пользователь может сказать, что люди из Исламабада, Пенджаба или Пакистана) могут голосовать или заполнять эту форму опроса. Кроме того, я хочу добавить, что ограничение по местоположению применимо (или ожидается) для небольшого количества опросов (максимум 5 процентов), поэтому как наиболее эффективно реализовать эту функцию.


person Muhammad Adeel Zahid    schedule 20.07.2011    source источник


Ответы (2)


Вы можете сделать это несколькими способами:

  1. Определите, откуда пользователь, на основе предыдущего вопроса о его местоположении. Не пуленепробиваемый, так как пользователь может легко сказать, что он оттуда, где его нет.
  2. Получите список сопоставления IP -> Country, который предоставит вам поиск IP-адреса клиента по сравнению с его местоположением. Вы бы ограничили на основе этого.
person Matthew Abbott    schedule 20.07.2011
comment
+1 за вариант 2, но как насчет проверки ограничений для 100% опросов, тогда как ограничение распространяется только на 5% опросов? - person Muhammad Adeel Zahid; 20.07.2011
comment
ограничение может быть на уровне города, страны, штата и т. д. Как я могу контролировать этот сценарий при создании опроса и когда опрос публикуется конечным пользователем - 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
comment
+1 за функцию html-5. можете ли вы рассмотреть мой комментарий к ответу Мэтью - person Muhammad Adeel Zahid; 20.07.2011