多个网站和使“跨站点”请求非法
我有两个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以使“跨站点” - 请求非法。
这是与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:
希望这有助于:-)
那么,如果企业内部网项目(及以下)与Sitecore的安全保护,它不应该是问题,也可以访问:)
如果不能安全处理它,那么我会用ItemResolver去。
干杯