2009-09-28 85 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去。

乾杯