代码之家  ›  专栏  ›  技术社区  ›  Pauli Østerø

多个网站并使“跨网站”请求非法

  •  2
  • Pauli Østerø  · 技术社区  · 15 年前

    数据库设置为指向两个站点的同一实例 在web.config中,配置为从不同的部分开始

    到现在为止,一直都还不错。

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

    http://www.default.com/sitecore/content/home/intranet.aspx <——这是不允许的,因为 www.default.com 配置为 /sitecore/content/home/default

    2 回复  |  直到 11 年前
        1
  •  2
  •   Bartłomiej Mucha    11 年前

    这与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中为/configuration/sitecore/pipelines/httpRequestBegin),为每个站点创建一个管道进程并更新相关的web.config。调用此进程时,可能会创建一个虚拟用户,该用户属于一个组,该组限制对用户请求的站点的访问。

    有一些代码 here 显示了如何创建虚拟用户:

    here 关于管道:

    希望这有帮助:-)

        2
  •  0
  •   pbering    15 年前

    如果intranet项目(及以下)受Sitecore安全保护,则不会出现问题,也不可能访问:)

    如果你不能安全地处理它,那么我会选择ItemResolver。