2009-11-05 8 views
2

Je suis actuellement au tout début de la conception d'une application Web qui sera utilisée par les entreprises. Chaque entreprise aura beaucoup de départements et chaque département beaucoup de personnel. Chaque département gérera sa propre application avec le personnel se connectant à l'application.Application Web Développement - Sous-domaine

Il est possible que le personnel de différentes organisations ait le même ID de personnel. Pour cette raison, je pense aller avec des sous-domaines. Chaque entreprise aura son propre sous-domaine. J'ai un peu googlé sur l'utilisation des sous-domaines et j'ai vu un certain nombre de positifs, mais pas trop de négatifs sauf pour les implications SEO (qui ne m'intéressent pas vraiment ... cette application nécessitera un contact direct avec chaque organisation .. c'est très spécialisé

Quelqu'un peut-il penser à d'autres inconvénients d'aller avec des sous-domaines? Quelqu'un peut-il penser à une meilleure façon de faire les choses?

Cordialement, Fiona

+0

Je ne comprends pas comment l'identification du personnel a quelque chose à voir avec votre URL/domaine. – ahockley

+0

Eh bien disons que nous n'allons pas avec des sous-domaines, alors j'ai une base de données. Chaque membre du personnel se connectera au site à l'aide de son personnel. S'il y a deux membres du personnel avec le même personnel, cela posera des problèmes. Malheureusement, une exigence est qu'ils se connecteront à l'application en utilisant leur identifiant personnel. Si vous voyez quelque chose de mal avec cette logique s'il vous plaît faites le moi savoir .. – Fiona

+0

Je ne comprends pas comment il y a un lien entre votre situation de domaine et votre base de données. Je peux créer une application web qui a une base de données ou plusieurs bases de données, en utilisant des sous-domaines ou non. Utilisez-vous une technologie dans laquelle votre schéma de base de données est directement lié à votre URL? – ahockley

Répondre

1

Vos informations de connexion figureront vraisemblablement dans une table de base de données quelque part. Vous aurez besoin de bases de données distinctes pour chaque entreprise et devrez identifier la base de données à utiliser. Ou vous aurez tous les utilisateurs dans une table, avec une sorte d'identifiant d'entreprise - et vous devrez déterminer quel identifiant d'entreprise à ajouter à votre requête de connexion. Vous pouvez effectuer l'une de ces déterminations en fonction du sous-domaine, ou sur une page de connexion ou un répertoire spécifique à l'entreprise, ou vous pouvez leur demander de sélectionner la société à laquelle ils souhaitent se connecter (ce qui serait plutôt moche).

Les sous-domaines devraient fonctionner correctement. Vous devrez faire l'installation de DNS chaque fois que vous ajoutez une compagnie, ou élaborez une certaine magie d'apache. Vous pouvez avoir besoin de certificats SSL pour chaque sous-domaine (je pense - je ne suis pas très familier avec ceux-ci). En dehors de cela, je ne vois pas de gros inconvénients ou avantages en ce qui concerne le code ou l'architecture. Le marketing peut avoir un meilleur argument pour l'un sur l'autre.

Vous voudrez toujours utiliser d'autres méthodes pour vous assurer que les utilisateurs n'ont pas accès aux données d'autres sociétés, en particulier si d'autres sous-domaines peuvent être devinés.

Nous avons également une application pour plusieurs sociétés, mais nous avons décidé de rendre toutes les connexions uniques. Cela nous permet d'identifier plus facilement les utilisateurs au détriment de devoir parfois expliquer pourquoi un nom d'utilisateur n'est pas disponible même si la société de l'utilisateur ne l'utilise pas.

+0

Salut Scott, choisir la compagnie à laquelle il souhaite se connecter n'est pas une option. Cela nous laisse donc avec un sous-domaine ou un sous-répertoire. Si je vais avec la route de sous-domaine, comme chacun aura sa propre base de données, cela élimine le problème de sécurité des utilisateurs ayant accès aux données d'une autre entreprise, sauf si deux ID ont les mêmes mots de passe (ce qui est très improbable). Ou voyez-vous d'autres problèmes de sécurité ici? Aussi, si je vais route sous-répertoire, alors je devrais imposer l'unicité de connexion. Ce qui n'est pas une option. Merci encore. Fiona – Fiona

+0

Si vous avez des DB distincts pour chaque société, il vous suffit de déterminer quelle base de données utiliser. Vous pouvez le faire en déterminant sur quel sous-domaine ils se trouvent, ou par quel répertoire/page de connexion ils se connectent. En PHP ou en Java, chaque détermination peut être aussi petite qu'une ou deux lignes de code. Donc, je pense que l'un ou l'autre pourrait fonctionner sans trop de différence. Une fois que vous avez choisi une base de données, il ne devrait pas y avoir plus de problèmes de sécurité - assurez-vous simplement que toutes les requêtes vont à la bonne. :) –

0

en utilisant des sous-domaines est une bonne idée, la seule préoccupation que j'ai l'authentification des en ce qui concerne les utilisateurs. Je suis un gars .net donc je soutiens cette question, je ne suis pas sûr si vous utilisez asp.net pour votre développement. Si vous utilisez asp.net pour développer ce site Web et que vous utilisez l'adhésion à asp.net, les profils et les rôles pour l'authentification et l'autorisation, vous finirez par avoir des problèmes de sécurité. Parce qu'un utilisateur après la connexion dans http://abc.site.com aurait également accès au site http://xyz.site.com. C'est la manière par défaut dont fonctionne l'appartenance à asp.net. Donc, vous devez garder cela à l'esprit.

Reste je pense que la philosophie du sous-domaine est assez bonne.

+0

Merci Bootcamp .. L'application ne sera pas construite avec .net .. pour le moment, la technologie avec laquelle elle est construite n'a pas été décidée, mais il est assez sûr de dire que ce sera avec une technologie open source. – Fiona

0

Les sous-domaines peuvent fonctionner correctement avec l'appartenance à asp.net. Comme les tables étaient créées pour le fournisseur d'appartenances, il existe une table aspnet_applications qui contient des champs pour le nom et la description de l'application. Dans la table aspnet_memberhip, chaque utilisateur a un champ pour applicationID. Si le nom de l'application est le sous-domaine, vous pouvez éventuellement limiter l'accès de l'utilisateur à quelle application. XYZ subdomian serait une application avec son propre ID, et l'application ABC serait une autre.

Problème de domaine intéressant. Bonne chance et partagez vos résultats après sa création.

Questions connexes