首先,WSS 3.0的Master Page是使用了下面兩個方法之一來顯示頁面右上方的那個“網站操作”菜單的。
1、直接在master page上使用“Microsoft.SharePoint.WebControls.SiteActions”控件,比如default.master就是這樣:
<a href="http://blog.51cto.com/attachment/201003/100721935.png" target="_blank"></a>
2、或者,在manster page上使用“Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\PublishingActionMenu.ascx”這個使用者控件(當然了,這個使用者控件裡面其實也是使用“Microsoft.SharePoint.WebControls.SiteActions”來的)。比如BlueBand.master:
<a href="http://blog.51cto.com/attachment/201003/100728231.png" target="_blank"></a>
是以,我下面說的這個步驟,就要根據你是使用的哪個master page,來決定是直接修改master page檔案,還是修改那個使用者控件。我下面的例子是用的default.master,也就是第一種情況。
那個SiteActions控件的用法是一個控件嵌套,類似于:
<SiteActions>
<CustomTemplate>
<FeatureMenuTemplate>
<MenuItemTemplate /> <--- 每個“MenuItemTemplate”表示網站操作菜單上的一個項目
</FeatureMenuTemplate>
</CustomTemplate>
</SiteActions>
找到表示“編輯頁面”的那個“<MenuItemTemplate>”節點,加上兩個屬性“PermissionsString”和“PermissionMode”("PermissionsString"的值表示必須具備此權限的使用者才能使用這個菜單項,“FullMask”表示所有權限,“ManageWeb”表示管理目前網站):
<a href="http://blog.51cto.com/attachment/201003/100734711.png" target="_blank"></a>
嗯,還沒有完。打開“Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\EditingMenu\SiteAction.xml”檔案,找到id是“wsaEditPage”的“ConsoleNode”節點,增加一個“UserRights”的屬性。(為什麼還要做這一步呢?簡單的說,是因為對于啟用了Publishing功能的網站,SharePoint會用Microsoft.SharePoint.Publishing.WebControls.PublishingSiteActionsMenuCustomizer控件來讀取這個xml檔案,然後動态的去更改“網站操作”菜單。)
<a href="http://blog.51cto.com/attachment/201003/100742169.png" target="_blank"></a>
OK,完成。理論上說,這個方法可以用更“優雅”的coding的方式來解決,然後再封裝成一個solution package,但是...有時候快速解決問題讓人更省心,不是嗎?另外,我相信你可以從這篇blog裡面學到除了禁止頁面個性化之外的更多内容... :)
本文轉自 kaneb0y 51CTO部落格,原文連結:http://blog.51cto.com/kaneboy/280803,如需轉載請自行聯系原作者