2009-09-28 4 views
2

J'ai deux sites IIS pointant vers des dossiers physiques différents. Cela permet de différencier web.config et les fichiers et assemblages utilisés pour les sites. La base de données est définie pour pointer vers la même instance pour les deux sites. Dans web.config sont configurés pour démarrer à partir de différentes parties La structure est semblable à ceci:Plusieurs sites Web et rendant les demandes "inter-site" illégales

  • /Sitecore/contenu/home/default

  • /Sitecore/content/home/intranet

jusqu'à présent, si bon.

Maintenant, le problème est que je suis en mesure de récupérer du contenu n'appartenant pas au site réel en entrant son chemin complet. C'est à dire.

http://www.default.com/sitecore/content/home/intranet.aspx < - cela ne doit pas être autorisé, car www.default.com est configuré avec /sitecore/content/home/default en tant que racine.

Y a-t-il un mécanisme intégré pour l'interdire ou dois-je sous-classer l'itemresolver pour rendre illégales les demandes de "cross sites"?

Répondre

2

C'est quelque chose à voir avec la façon dont Sitecore résout les éléments, j'ai trouvé trois différentes URL pour chaque élément. Par exemple dire que j'ai la structure suivante:

-sitecore 
    -content 
    -home 
     -page1 

je peux accéder page1 soit par:

  • http://mysite/sitecore/content/home/page1.aspx
  • http://mysite/page1.aspx
  • http://mysite/home/page1.aspx

Cependant sachant cela ne sera pas aider à résoudre votre problème. La meilleure solution que je puisse suggérer est d'utiliser la sécurité. Toutefois, si les deux sites ont besoin d'un accès anonyme, la question est de savoir comment contrôler cela?

J'imagine que puisque vous avez deux web.config séparés, vous devez également séparer les sections de configuration de Sitecore. Donc ce que nous pouvons faire est de créer un processus de pipeline qui s'exécute dans le cadre de la requête http begin pipeline (dans le web.config sous/configuration/sitecore/pipelines/httpRequestBegin) en créant un pour chaque site et en mettant à jour le web.config correspondant. Lorsque ce processus est appelé, il peut créer un utilisateur virtuel appartenant à un groupe qui restreint l'accès au site demandé par l'utilisateur.

Il y a un code here qui vous montre comment créer un utilisateur virtuel:

Et here sur les pipelines:

Hope this helps :-)

0

Eh bien, si l'élément intranet (et ci-dessous) est protégé par la sécurité Sitecore il ne devrait pas être un problème, ni possible d'accéder :)

Si vous ne pouvez pas le manipuler avec la sécurité alors j'aller avec le ItemResolver.

Vive

Questions connexes