2014-06-19 24 views
0

我們創建了一個網站,需要將大部分網頁鎖定到匿名用戶。他們應該能夠訪問的唯一的頁面是:當匿名訪問被刪除時請求siteroot時出錯

  • 登錄
  • 重置密碼
  • 帳戶驗證
  • 找不到網頁
  • 隱私政策
  • 牛逼&銫

該網站的startItem已被設置爲「/ Home」,全部爲o f其他頁面包括那些允許匿名訪問的頁面如下。

此節點已將「extranet \ Anonymous」讀取刪除,然後我們允許讀取我們希望他們訪問的特定頁面。

我們發現,如果我們要求一個Url,例如:www.domain.com/page-i-cant-get-to,那麼Sitecore會將您重定向到網站上loginPage屬性中設置的url,哪個是對的。

但是,如果我要求www.domain.com,我收到了一個錯誤說「爲要求的文檔佈局沒有被發現。

如果我登錄,然後去相同的URL,一切都很好。

我已經遍歷了ExecuteRequest管道,並且在請求www.domain.com/page-i-cant-get-to時發現了Context.Item爲null,所以它被傳遞給HandleItemNotFound(args)方法。

如果我們要求根頁面,那麼這被設置爲根站點核心節點ID {11111111-1111-1111-1111-111111111111}並且因此通過手leItemNotFound並進入HandleLayoutNotFound(參數)

我試過使用「requireLogin」屬性,但是我只能訪問loginPage,而不是其他任何我想允許匿名訪問的頁面。

我也嘗試將startItem更改爲登錄頁面,但頁面的所有Url都位於不正確的結構中。

是否有人能夠闡明如何做到這一點?

在此先感謝

+0

您是否找到解決方案?我現在遇到了同樣的問題。 –

+0

我們最終覆蓋了ExecuteRequest管道上的Process方法。在方法結束時,它檢查Context.Item是否爲空。我們將其更改爲null或args.LocalPath ==「/」 – SimonTheGoat

回答

0

你爲什麼不試試,具有讀取權限的匿名用戶在家庭項目,然後否認頁面要阻止(項目)?

相關問題