ASP.NET-MVC 5中的控制器侧纬度和经度

时间:2015-04-28 18:03:04

标签: c# asp.net-mvc

我想在用户登录时获取经度和纬度。我知道我可以通过以下方式获得客户端的经纬度:

@{
    ViewBag.Title = "Home Page";
}
@section Scripts {
    <script>
        var x = document.getElementById("demo");
        function getLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition);
            } else {
                x.innerHTML = "Geolocation is not supported by this browser.";
            }
        }
        function showPosition(position) {
            x.innerHTML = "Latitude: " + position.coords.latitude +
            "<br>Longitude: " + position.coords.longitude;
        }
        window.onload(getLocation());
    </script>
}

<div id="demo"></div>

然后将其隐藏为登录表单的一部分。然后通过将表单提交给POST登录控制器来传递它:

  public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) {

这是个好主意吗?地理定位可能很容易被伪造,同时将它传递给控制器​​是否有办法通过C#在控制器端实现它?

1 个答案:

答案 0 :(得分:0)

无法直接从服务器端获取用户的精确位置。地理位置数据旨在帮助您的网站根据他们发送给您的信息提供更好的用户体验。它不应该用于安全目的。