2009-11-05 129 views
2

我目前处于构建将由公司使用的Web应用程序的设计阶段。每个公司都有很多部门,每个部门都有很多员工。每个部门都会管理自己的应用程序,同时员工登录到应用程序。Web应用程序开发 - 子域

有可能跨不同组织的员工拥有相同的员工编号。出于这个原因,我正在考虑使用子域名。每家公司都有自己的子域名。我已经搜索了一些关于使用子域名的信息,并且看到了一些积极的信息,但是除了搜索引擎优化的含义之外,没有太多的消极因素(这并不令我感兴趣......这个程序需要与每个组织直接联系..它是非常专业的)

任何人都可以想到使用子域的任何其他缺点吗?任何人都可以想到更好的做事方式吗?

问候,使用子域名是一个好主意,我唯一关心的是关于用户的认证 菲奥娜

+0

我不明白工作人员身份与您的网址/域名有什么关系。 – ahockley 2009-11-05 15:44:44

+0

好吧,说我们不去与子域,然后我有一个数据库。每位工作人员都将使用其staffid登录该网站。如果有两名工作人员在同一工作人员身边,这会造成问题。不幸的是,一个要求是他们将使用他们的员工ID登录到应用程序。 如果你看到这个逻辑有什么问题,请让我知道.. – Fiona 2009-11-05 15:57:57

+0

我不明白你的域名情况和你的数据库之间有什么联系。我可以创建一个具有一个数据库或多个数据库的Web应用程序,使用子域名或不使用子域名。 您是否正在使用某种技术将数据库模式直接绑定到您的URL? – ahockley 2009-11-05 16:05:39

回答

1

您的登录信息大概会在某个数据库表中。您需要为每家公司分别设置数据库,并需要确定要使用哪个数据库。或者,您将拥有一个表中的所有用户以及某种公司标识 - 并且您需要确定将哪个公司标识添加到您的登录查询中。

您可以根据子域名或公司特定的登录页面或目录进行这些决定,或者您可以要求他们选择要登录哪家公司(这将非常难看)。

子域名应​​该正常工作。每次添加公司时都必须进行DNS设置,或者制定一些Apache魔法。您可能需要每个子域的SSL证书(我认为 - 我不太熟悉这些)。除此之外,就代码或体系结构而言,我没有看到任何大的缺点或优点。市场营销对于其中一个来说可能会更有力。

您仍然希望使用其他方法来确保用户无法访问其他公司的数据,尤其是在其他子域名可疑的情况下。

我们也有一个多公司应用程序,但决定使所有登录都是唯一的。这使我们能够更轻松地识别用户的唯一身份,但偶尔需要解释为什么某些用户名不可用,即使该用户的公司没有使用它。

+0

嗨斯科特,挑选哪家公司他们希望登录到不是一个选项。因此,我们留下子域或子目录。如果我使用子域路由,因为每个用户都有自己的数据库,这可以消除有权访问另一家公司数据的用户的安全问题,除非两个员工ID具有相同的密码(我认为这是非常不可能的)。或者您在这里看到其他安全问题?此外,如果我去子目录路线,那么我将不得不强制登录唯一性。这不是一个选项。再次感谢。 Fiona – Fiona 2009-11-05 16:10:00

+0

如果您为每家公司都有单独的数据库,那么您只需确定要使用哪个数据库。您可以通过确定他们所在的子域,或者从他们登录的目录/登录页面来完成。在PHP或Java中,任何一种测试都可以少至一行或两行代码。所以我认为要么工作没有太大的差别。一旦你选择了一个数据库,不应该有任何更多的安全问题 - 只要确保所有查询都正确。 :) – 2009-11-05 16:17:00

0

。我是一个.net人,所以我提出这个查询,我不知道你是否使用asp.net进行开发。如果您使用asp.net开发本网站并且您正在使用asp.net成员资格,配置文件和角色进行身份验证和授权,那么您最终会遇到安全问题。因为登录到http://abc.site.com后的用户也可以访问该站点http://xyz.site.com。这是asp.net成员资格工作的默认方式。所以你需要牢记这一点。

休息我认为子领域的哲学是足够好的。

+0

感谢Bootcamp ..该应用程序不会与.net ..建立在一起什么样的技术与它一起建立尚未决定,但它很可靠地说,它将与一些开源技术。 – Fiona 2009-11-05 15:59:22

0

子域名可能在asp.net成员资格上工作得很好。因为表是为成员资格提供程序创建的,所以有一个aspnet_applications表,它具有te应用程序名称和说明的字段。在aspnet_memberhip表中,每个用户都有一个applicationID字段。如果应用程序名称是子域名,那么您可能会限制哪个用户可以访问哪个应用程序。 XYZ subdomian将是一个具有自己ID的应用程序,而ABC应用程序将是另一个应用程序。

有趣的域问题。祝你好运,并在创建后分享你的结果。