Php 在线应用的多个登录位置

Php 在线应用的多个登录位置,php,security,web-applications,authorization,Php,Security,Web Applications,Authorization,我正在开发一个基于浏览器的应用程序,它将拥有许多用户。关键是每个用户都应该有自己的自定义登录页面,但实际应用程序对每个人都是一样的,并且需要位于中心位置 登录页面是静态的。也就是说,如果我们有一个需要单独登录的用户,我们将为他们创建一个单独的登录页面,比如在user1.application.com上,该页面将有一个蓝色背景。用户2将获得一个指向user2.application.com的url,该url将具有绿色背景。应用程序不必动态更改登录页面的外观,该页面将是静态的,并在更高级别上进行管理

我正在开发一个基于浏览器的应用程序,它将拥有许多用户。关键是每个用户都应该有自己的自定义登录页面,但实际应用程序对每个人都是一样的,并且需要位于中心位置

登录页面是静态的。也就是说,如果我们有一个需要单独登录的用户,我们将为他们创建一个单独的登录页面,比如在user1.application.com上,该页面将有一个蓝色背景。用户2将获得一个指向user2.application.com的url,该url将具有绿色背景。应用程序不必动态更改登录页面的外观,该页面将是静态的,并在更高级别上进行管理

这样做最安全的方式是什么

为每个用户提供一份应用程序的副本,并保持数据库的集中化是否更有意义

预计的用户数量不是很高,大概在20-80人左右


谢谢,

我可以为您介绍如何使用Microsoft IIS和ASP.NET执行此操作。其他服务器和编程语言仍然适用,但具体情况会有所不同

您需要有权访问DNS设置。为*.application.com创建DNS条目。我们将其作为CNAME记录来执行,该记录指向注册为与IP地址关联的a记录的www域记录

备选案文1: 在IIS 6中,创建网站并修改主机标题(网站属性,网站选项卡,“网站标识”部分中的“高级…”按钮)。添加一个空主机头。这将导致IIS的网站回答与它正在侦听的IP地址关联的所有域的所有请求

然后创建一个默认页面,在代码隐藏中,您将拥有查看每个请求的Request.UserHostName的逻辑。它应该返回“user1.application.com”或“user2.application.com”或“www.application.com”。然后,您必须解析该字符串,并执行所有脏活来加载相应的页面

嗯,好吧,这就是你用一个网站动态完成的方式。重新阅读你的问题,你谈论的是“静态”登录页面。为此,你有两个选择。您可以创建静态登录页面,让动态页面读取这些文件并将其作为响应发送,或者选项二是

备选案文2: 在IIS中,为每个用户创建一个新网站。如上所述修改主机头,使每个网站只有一个等于用户登录名的主机头。不要有主机标题为空的网站。您必须手动创建网站并为每个新用户添加主机标题


这两个选项听起来都不太雅致,但选项1的效果相当不错。我们正在以类似的方式使用它来承载应用程序的多个“皮肤”。

登录页面(如输入用户名和密码的页面)是定制的吗?或者随后的页面是定制的(他们的“主页”或仪表板)?如果你还不知道用户是谁,因为他们还没有登录,你怎么知道用户是谁?用户输入名称和密码的页面是定制的。我不需要知道用户是谁,不同的用户将在不同的位置拥有登录页。在用户登录之前(登录页之后),您无法知道如何自定义页面。你可以很容易地定制他们的仪表板,但是上面有用户名和密码的页面不能很容易地为每个用户定制。注销页面可能会关闭。除非您将登录页面设计基于请求变量,如
site.com/login.php?design=mypage
或其IP地址。我不会尝试动态自定义登录页面。不同的用户(或用户组)将有不同的登录位置。每个用户将获得一个不同的url,但所有url在登录后都将指向同一位置。