2015-09-06 1 views
1

J'ai d'abord créé un projet en utilisant du code. Je souhaite créer deux itinéraires distincts avec des dispositions distinctes et une base de données partagée. Et gérer la séparation en fournissant un lien séparé du lancement et en utilisant l'authentification de l'utilisateur [Authorize] avec l'identité de l'utilisateur pour aider à contrôler quels utilisateurs peuvent accéder à quels liens.Comment créer des vues séparées en fonction de l'utilisateur du site Web

Cela permet également de présenter le site Web des employés sur l'intranet.

Cependant, je ne veux pas que le consommateur puisse voir ces liens. Donc, je sépare les vues et les contrôleurs.

Par exemple:
1. Si l'employé accède au site, la page d'accueil Index sera AdminIndex, en utilisant le _AdminLayout.
2. Si le client accède au site Web, il atterrira sur la Index en utilisant _Layout

folders

Je suis sûr qu'il ya de meilleures façons de le faire.
Est-il viable de regrouper ceci dans un projet? Ou est-il préférable de les séparer, auquel cas je ne sais pas comment partager la base de données.

Répondre

2

Ceci est criant pour plusieurs projets dans la même solution. Dans quelle mesure vous prenez après cela dépend de la taille du projet et vos besoins spécifiques, mais à tout le moins, envisager quelque chose le long des lignes de ce qui suit:

SolutionName 
- SolutionName.Admin 
- SolutionName.DAL // Data Access Layer (DAL) 
- SolutionName.Frontend/Web 

Le but du projet DAL est de centraliser vos préoccupations liées aux données en un seul endroit, que vous référeriez ensuite des deux autres projets. Vous pouvez prendre ce lot plus loin, en fonction de la taille et de la complexité, de ce que vous travaillez, mais ce qui précède servira de bon point de départ pour un projet plus petit. En faisant ce qui précède, vous rendrez votre code plus propre, plus facile à tester et à maintenir, simplement parce que vous n'aurez pas de contrôles conditionnels jonchés dans le code pour déterminer si quelqu'un est un administrateur ou non.

+0

Merci, j'apprends. C'est logique. C'est ma première tentative sur un site web entièrement fonctionnel. Donc j'apprécie les commentaires. Bien que j'étudie, le calendrier des cours ne correspond pas toujours à mes besoins. –

+0

@Heyyou Pas un problème - nous apprenons tous encore. :) Je me souviens que cela ne soit pas particulièrement clair pour moi quand j'ai commencé, mais vous avez un bon exemple de pourquoi plusieurs projets, et une solution en couches, peuvent être utiles. Si vous êtes curieux de savoir jusqu'où cela peut réellement être pris, il vaut la peine de lire [this] (https://msdn.microsoft.com/fr-fr/library/ff650706.aspx). En particulier, les chapitres 5 à 9 couvrent l'idée de superposition. Il y a d'autres sources, bien sûr, mais cela vous donnerait sans aucun doute des éléments de recherche plus tard. –

+0

Merci John, je vais le faire. Sera assis l'examen de certification MS pour cela quand j'ai terminé, donc toute l'aide le mieux. –