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

C# 在ASP.NET MVC(体系结构)中处理唯一的动态登录页面,c#,asp.net-mvc,authentication,C#,Asp.net Mvc,Authentication,我正在做一个学校项目,我必须在全国范围内实施一个票证处理系统。这种情况是,在美国有多个售票亭可以登录。对于这个项目,我需要创建一个动态登录屏幕,它将在登录时加载售票亭的图片。因此,当用户进入网页时,它必须知道用户试图从哪个摊位登录,然后还必须抓取图像并将其设置为登录页面的背景 我使用的是ASP.NETMVC,我也不想找人帮我写代码,只是想帮我想出一个可以实现的解决方案 编辑:我可能不想对IP地址做任何事情,因为它们不可靠。到目前为止,通过JS进行地理定位似乎是一个好主意,默认登录然后为登录位置存

我正在做一个学校项目,我必须在全国范围内实施一个票证处理系统。这种情况是,在美国有多个售票亭可以登录。对于这个项目,我需要创建一个动态登录屏幕,它将在登录时加载售票亭的图片。因此,当用户进入网页时,它必须知道用户试图从哪个摊位登录,然后还必须抓取图像并将其设置为登录页面的背景

我使用的是ASP.NETMVC,我也不想找人帮我写代码,只是想帮我想出一个可以实现的解决方案


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

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


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

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

如果售票亭第一次访问网站,会出现一个下拉菜单,显示所有售票亭的位置+登录表单,以及一个带有“记住我的决定”的复选框,该场景如何?
成功登录后,cookie将存储在保存国家/地区决策的计算机上,即对于网站的任何后续访问,您都可以加载特定图像。

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

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

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

即使您确实获得了真实的用户IP,它通常只是区域性的:范围与用户所在州的服务器相关联,而不一定是用户所在的实际城市,在某些情况下,它甚至可能只是附近的一个州。如果你的展位是相当分散的,而不是集中在任何一个区域,你可能能够正确地确定背景图像显示只是一般地区,不过


坦率地说,这项任务听起来有点不成熟,所以你可能想回到你的导师那里,更好地了解需求。

如果这些展位有一些现场配置,部署它的人唯一需要做的就是,正在设置浏览器的起始页以包括展位的位置。我非常喜欢这个想法,因为它将是最准确的,我将给讲师发电子邮件,看看他认为我们应该如何处理这个问题。谢谢,我应该提到这一点,但是在整个申请过程中,售票亭是不允许以任何方式看到对方的。但是我喜欢的是一个默认登录页面的想法,一旦用户登录,它就可以检查数据库中该用户的位置,并存储与该位置相关联的背景图像的Id。因此,在初次登录时,它将是空的,然后当cookie持续存在时,它将加载背景图像。