Ограничение пользователей на основе геолокации в asp.net mvc
В моем приложении asp.net mvc у меня есть модель опроса, которую может создать любой. Более того, я хочу, чтобы в опросе участвовали (голосовали) люди из определенной части мира. Это простая работа, если я знаю местоположение (это может быть город, страна или штат и т. Д.). Я хочу добавить это ограничение местоположения во время создания опроса (т. е. пользователь может сказать, что жители Исламабада, Пенджаба или Пакистана) могут проголосовать или заполнить эту форму опроса. Более того, я хочу добавить, что ограничение местоположения применимо (или ожидается) для небольшого количества опросов (максимум 5 процентов), так как наиболее эффективно реализовать эту функцию.
2 ответа
Вы можете сделать это несколькими способами:
- Определите, откуда пользователь, основываясь на предыдущем вопросе, спрашивающем его местонахождение. Не пуленепробиваемые, так как пользователь может легко сказать, что они откуда-то не являются.
- Получите список сопоставления IP -> Страна, который предоставит вам поиск IP-адреса клиента и его местоположения. Вы бы ограничить, основываясь на этом.
Вы можете выяснить чье-либо местоположение, используя IP-адрес. Есть много услуг, которые предлагают местоположение IP-адреса. На основании этого они дадут вам приблизительное местоположение пользователей.
Вот пример службы:
Вы также можете узнать их местоположение, используя функции геолокации HTML5.
Для вашего случая, вероятно, достаточно использовать IP-адрес. Опция HTML5 хороша, потому что, если у пользователя нет устройства GPS в его системе, он в конечном итоге возвращается к использованию местоположения IP-адреса.
Чтобы получить IP-адрес пользователя в ASP.NET, вы можете использовать
Request.Servervariables("REMOTE_ADDR")