在线应用的多个登录位置

时间:2010-06-17 00:38:46

标签: php security web-applications authorization

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

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

最安全的方法是什么?

为每个用户提供应用程序副本更有意义,并保持数据库集中化吗?

预计用户数量不是很高,可能在20-80左右。

谢谢,

1 个答案:

答案 0 :(得分:1)

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

您需要有权访问DNS设置。为* .applicaiton.com创建DNS条目。我们这样做是作为CNAME记录,指向我们的www域记录,该记录被注册为与IP地址关联的A记录。

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

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

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

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

这两个选项听起来都不是很优雅,但选项1的效果相当不错。我们以类似的方式使用它来托管我们应用程序的多个“皮肤”。