在ASP.NET MVC(体系结构)中处理唯一的动态登录页

本文关键字:唯一 处理 动态 登录 NET ASP MVC 体系结构 | 更新日期: 2024-10-22 16:48:42

我正在做一个学校项目,在这个项目中,我必须在国家层面上实现一个票务处理系统。场景是,在美国各地有多个可以登录的售票亭。对于这个项目,我需要创建一个动态登录屏幕,在登录时加载售票亭的图片。因此,当用户访问网页时,它必须知道用户试图从哪个展位登录,然后还必须获取一个图像并将其设置为登录页面的背景。

我使用的是ASP.NET MVC,我也不想找人为我编写代码,只是为了帮助我想出一个可以实现的解决方案。

编辑:我可能不想对IP地址做任何事情,因为它们不可靠。到目前为止,通过JS进行地理定位似乎是个好主意,而默认登录(然后为登录位置存储cookie)似乎也是个好主意。

在ASP.NET MVC(体系结构)中处理唯一的动态登录页

不同的方法(我知道它不完全适合您的需求):

如果一个售票亭第一次访问网站,会显示一个下拉菜单(包括所有售票亭位置)+登录表单,以及一个带有"记住我的决定"的复选框,这种情况会怎样?成功登录后,cookie将存储在计算机上,以保存国家/地区的决定,对于任何后续访问网站,您都可以加载特定的图像。

您可以使用电话亭的IP地址,并根据其设置不同的背景图像。

为了在ASP.NET中获取客户端IP地址,可以使用Request.UserHostAddress属性。然后,您可以在电话亭的IP地址和图像之间进行映射,并选择合适的图像。

这里的主要问题是,用户登录您的网站之前,您对他们的信息非常有限,并且所有信息都是不可靠的,因为它们很容易被欺骗。

如果你可以通过位置来做到这一点,那么最好的方法可能甚至不是你的MVC堆栈,而是一点前端JavaScript。您可以使用Geolocation API获取用户的物理位置,然后将该信息与AJAX调用一起使用,从API端点获取适当的背景图像。

然而,考虑到这是分配,要求可能是只使用后端,在这种情况下,除了IP地址之外,您没有太多可用的东西。同样,这些信息很容易被欺骗,或者被篡改。代理服务器、前端缓存服务器等都会导致IP源自该服务器,而不是实际用户的IP。VPN还可以改变IP,隐藏用户的真实位置。

即使你得到了真正的用户IP,它通常也只是区域性的:范围与用户所在州的服务器相连(不一定是用户所在的实际城市),在某些情况下,它甚至可能只是附近的州。如果你的展位相当分散,并且没有密集地集中在任何一个区域,那么你可能能够正确地确定只按一般区域显示的背景图像。

坦率地说,这个作业听起来有点不成熟,所以你可能想回到你的教练那里,更好地了解要求。