2010-03-02 24 views
0

我正在使用ViewFormPagesLockDown功能來阻止匿名用戶訪問標準列表表單的面向公衆的MOSS 2007網站上工作。我不想失去此功能提供的額外安全性,但有一些列表,匿名用戶應該可以訪問表單。ViewFormPagesLockDown並排除特定列表/頁

有什麼我可以在列表設置,列表模板或功能代碼中做什麼,以停止特定列表或窗體需要SPBasePermissions.ViewFormPages?

回答

1

我無法找到解決辦法。 LockDown功能的支持似乎被烘焙到表單類中。相反,我們所做的是創建一個單獨的頁面,並擁有自己的ListFormWebPart。以下是我們內部博客的一個條目改編,其中列出了允許匿名用戶將新項目添加到列表的步驟:

在列表設置中,轉到高級設置。確保讀取權限設置爲全部項目。返回到列表設置並選擇此列表的權限。通過選擇「操作」>「編輯權限」來中斷站點的繼承。注意:如果您看到名稱左側的複選框,則此步驟已完成。一旦設置了自定義權限,請選擇設置>匿名訪問。選中添加項目,然後單擊確定。要完成匿名訪問,請返回到「設置」>「高級設置」,並重置爲選擇「只有自己擁有讀取訪問權限和編輯訪問權限」,然後單擊「確定」。

使用網站操作>創建頁面創建新頁面。打開網站SharePoint Designer。右鍵單擊新創建的頁面,然後選擇從頁面佈局分離。將光標放在Web部件區域中,然後選擇「插入」>「SharePoint控件」>「自定義列表表單」。選擇適當的清單和新建物料表格,然後點擊確定。在代碼窗格中,change DataSourceMode在從ListItem到Web的新創建的DataFormWebPart中。離開ListItem的默認設置,匿名用戶會得到「拒絕訪問,您沒有權限執行此操作或訪問此資源」錯誤。在瀏覽器中保存並查看頁面。

爲獲得最佳結果,請僅在開發服務器上使用SharePoint Designer。要將WebPart遷移到生產環境,請在瀏覽器的Development服務器上打開該頁面,然後從WebPart菜單中選擇Export。保存WebPart文件。在瀏覽器中打開生產服務器上的頁面,然後從網站操作中選擇編輯頁面。從頁面工具欄上的菜單中,選擇頁面>添加Web部件>導入。輸入從開發服務器保存的WebPart文件的位置,然後單擊上傳。接下來,將導入的WebPart從右側的工具窗格拖到所需的WebPart區域中。要保存該頁面,請單擊發布。

1

一個老問題,但我想我會添加另一個選項,你可以用它來做到這一點。

解決方案: 由於Rich在列表中提到了中斷權限繼承。 關閉ViewFormPagesLockDown功能。
設置匿名用戶有權訪問列表。 打開ViewFormPagesLockDown功能。

匿名用戶現在應該只能訪問列表的應用程序頁面。

的理由: 的ViewFormPagesLockDown功能消除「查看應用程序頁面」和「使用遠程接口」權限從「受限訪問」權限的角色。但是,在切換匿名訪問選項之前,匿名用戶不會選擇對該角色所做的更改。這可以在網站或列表級別上運行。 因此,如果您希望某個特定的網站或列表對應用程序頁面擁有不同的匿名訪問權限,則可以使用上述解決方案來更改它。