項目要求讓普通用戶看不到“網站操作”,爲了解決該問題,我找了好幾篇博客,但都是sharepoint2007,按照sharepoint designer簽出,簽入,審批,發佈。可能是sharepoint2007和sharepoint2010的區別,發佈後我的首頁直接出錯。之後還原了v4.master的版本也無濟於事。只好將sharepoint還原,甚是麻煩。
於是想到直接修改v4.master文件,修改之前備份,這樣即使出錯只修改將備份文件還原就可以了,不需要用到sharepoint designer簽入,簽出,審批,發佈。
搜索v4.master,有兩個文件,一個是在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS目錄下,另一個是在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL下,仔細分析v4.master文件,不難發現SharePoint:SPRibbon這樣的sharepoint控件擁有權限控制,權限格式如下:PermissionsString="EditListItems, AddAndCustomizePages" PermissionMode="All" 顧名思義,PermissionsString就是哪些權限擁有可見權限,PermissionMode就是權限模式。
我們將SharePoint:SPRibbon修改成如下:
< SharePoint:SPRibbon runat = "server" PlaceholderElementId = "RibbonContainer" CssFile = "" FixedPositioningEnabled = "true" PermissionsString = "EditListItems,
AddAndCustomizePages" PermissionMode = "All" > |
這樣一般權限的用戶就看不到ribbon了。
但“網站操作”還在,我們想辦法隱藏,於是想當然
< SharePoint:SiteActions
runat = "server"
accesskey="<%$Resources:wss,tb_SiteActions_AK%>" id="SiteActionsMenuMain"
PrefixHtml=""
SuffixHtml=""
MenuNotVisibleHtml=" "
PermissionsString="EditListItems, AddAndCustomizePages"< BR >
< BR >PermissionMode="All"> |
結果頁面報錯,出錯原因是SharePoint:SiteActions沒有PermissionsString屬性。
於是Google了一番,找到將SharePoint:SiteActions和span放在<Sharepoint:SPSecurityTrimmedControl即可。
< Sharepoint:SPSecurityTrimmedControl
ID = "SPSecurityTrimmedControl2"
runat = "server"
PermissionsString = "EditListItems, AddAndCustomizePages" PermissionMode = "All" >
< span
class = "ms-siteactionsmenu"
id = "siteactiontd" >
< SharePoint:SiteActions
runat = "server"
accesskey="<%$Resources:wss,tb_SiteActions_AK%>" id="SiteActionsMenuMain"
PrefixHtml=""
SuffixHtml=""
MenuNotVisibleHtml=" "
>
........ </ SharePoint:SiteActions ></ span >
</ Sharepoint:SPSecurityTrimmedControl > |