2009-09-28 78 views
2

我有两个IIS站点指向不同的物理文件夹。这是为了能够区分web.config和用于站点的文件和程序集 数据库设置为指向两个站点的同一实例 在web.config中配置为从不同部分开始 结构类似于这样的:多个网站和使“跨站点”请求非法

  • /Sitecore的/内容/首页/默认

  • /Sitecore的/内容/首页/内联网

到目前为止好。

现在,问题是我能够通过输入完整路径来检索不属于实际站点的内容。 IE浏览器。

http://www.default.com/sitecore/content/home/intranet.aspx < - 这不应该被允许,因为www.default.com配置为/sitecore/content/home/default作为根。

是否有任何内置的机制来解决这个问题,还是我必须继承itemresolver以使“跨站点” - 请求非法。

回答

2

这是与Sitecore的是如何解决的项目,我已经找到了3个不同的URL的每个项目。例如说我有以下结构:

-sitecore 
    -content 
    -home 
     -page1 

我可以访问第1页或者通过:

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

但是知道这会不会帮助解决你的问题。我可以建议的最佳解决方案是使用安全性。但是,如果两个站点都需要匿名访问,问题是你如何控制这个?

我想,既然你有两个单独的web.config的你也必须分开Sitecore配置部分。因此,我们可以做的是创建一个管道进程,该进程作为http请求开始管道的一部分运行(在web.config as/configuration/sitecore/pipelines/httpRequestBegin中),为每个站点创建一个流程并更新相关的web.config。当这个过程被调用时,它可以创建一个虚拟用户,该虚拟用户属于一个限制访问用户请求的站点的组。

有一些代码here将告诉您如何创建一个虚拟用户:在管道

而且here

希望这有助于:-)

0

那么,如果企业内部网项目(及以下)与Sitecore的安全保护,它不应该是问题,也可以访问:)

如果不能安全处理它,那么我会用ItemResolver去。

干杯