天天看點

如何禁止掉SharePoint頁面個性化?(續)

首先,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控件的用法是一個控件嵌套,類似于:

&lt;SiteActions&gt;

  &lt;CustomTemplate&gt;

    &lt;FeatureMenuTemplate&gt;

      &lt;MenuItemTemplate /&gt;     &lt;--- 每個“MenuItemTemplate”表示網站操作菜單上的一個項目

    &lt;/FeatureMenuTemplate&gt;

  &lt;/CustomTemplate&gt;

&lt;/SiteActions&gt;

找到表示“編輯頁面”的那個“&lt;MenuItemTemplate&gt;”節點,加上兩個屬性“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,如需轉載請自行聯系原作者