ZZ: 如何禁止掉SharePoint页面个性化?(续) from kaneboy
2008-03-28 11:58
344 查看
原文URL: http://blog.joycode.com/kaneboy/archive/2008/01/30/114299.aspx
在之前的文章里面,写了一个方法,来禁止掉SharePoint页面的个性化。但当时就有人问了,如果我只想管理员能够个性化页面,而非管理员不能做这个操作,又应该如何做呢?下面就是方法。注意:这个方法是基于SharePoint如何显示其“网站操作”菜单的原理,也就是说,这个方法是基于其原理的“倒推论”,我没有对这个方法进行过完整的验证测试...:(
首先,WSS 3.0的Master Page是使用了下面两个方法之一来显示页面右上方的那个“网站操作”菜单的。
1、直接在master page上使用“Microsoft.SharePoint.WebControls.SiteActions”控件,比如default.master就是这样:
2、或者,在manster page上使用“Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\PublishingActionMenu.ascx”这个用户控件(当然了,这个用户控件里面其实也是使用“Microsoft.SharePoint.WebControls.SiteActions”来的)。比如BlueBand.master:
所以,我下面说的这个步骤,就要根据你是使用的哪个master page,来决定是直接修改master page文件,还是修改那个用户控件。我下面的例子是用的default.master,也就是第一种情况。
那个SiteActions控件的用法是一个控件嵌套,类似于:
<SiteActions>
<CustomTemplate>
<FeatureMenuTemplate>
<MenuItemTemplate /> <--- 每个“MenuItemTemplate”表示网站操作菜单上的一个项目
</FeatureMenuTemplate>
</CustomTemplate>
</SiteActions>
找到表示“编辑页面”的那个“<MenuItemTemplate>”节点,加上两个属性“PermissionsString”和“PermissionMode”("PermissionsString"的值表示必须具备此权限的用户才能使用这个菜单项,“FullMask”表示所有权限,“ManageWeb”表示管理当前网站):
嗯,还没有完。打开“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文件,然后动态的去更改“网站操作”菜单。)
OK,完成。理论上说,这个方法可以用更“优雅”的coding的方式来解决,然后再封装成一个solution package,但是...有时候快速解决问题让人更省心,不是吗?另外,我相信你可以从这篇blog里面学到除了禁止页面个性化之外的更多内容... :)
在之前的文章里面,写了一个方法,来禁止掉SharePoint页面的个性化。但当时就有人问了,如果我只想管理员能够个性化页面,而非管理员不能做这个操作,又应该如何做呢?下面就是方法。注意:这个方法是基于SharePoint如何显示其“网站操作”菜单的原理,也就是说,这个方法是基于其原理的“倒推论”,我没有对这个方法进行过完整的验证测试...:(
首先,WSS 3.0的Master Page是使用了下面两个方法之一来显示页面右上方的那个“网站操作”菜单的。
1、直接在master page上使用“Microsoft.SharePoint.WebControls.SiteActions”控件,比如default.master就是这样:
2、或者,在manster page上使用“Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\PublishingActionMenu.ascx”这个用户控件(当然了,这个用户控件里面其实也是使用“Microsoft.SharePoint.WebControls.SiteActions”来的)。比如BlueBand.master:
所以,我下面说的这个步骤,就要根据你是使用的哪个master page,来决定是直接修改master page文件,还是修改那个用户控件。我下面的例子是用的default.master,也就是第一种情况。
那个SiteActions控件的用法是一个控件嵌套,类似于:
<SiteActions>
<CustomTemplate>
<FeatureMenuTemplate>
<MenuItemTemplate /> <--- 每个“MenuItemTemplate”表示网站操作菜单上的一个项目
</FeatureMenuTemplate>
</CustomTemplate>
</SiteActions>
找到表示“编辑页面”的那个“<MenuItemTemplate>”节点,加上两个属性“PermissionsString”和“PermissionMode”("PermissionsString"的值表示必须具备此权限的用户才能使用这个菜单项,“FullMask”表示所有权限,“ManageWeb”表示管理当前网站):
嗯,还没有完。打开“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文件,然后动态的去更改“网站操作”菜单。)
OK,完成。理论上说,这个方法可以用更“优雅”的coding的方式来解决,然后再封装成一个solution package,但是...有时候快速解决问题让人更省心,不是吗?另外,我相信你可以从这篇blog里面学到除了禁止页面个性化之外的更多内容... :)
相关文章推荐
- 强烈推荐使用五笔加加输入法
- ZZ: 如何禁止掉SharePoint页面个性化? from kaneboy
- SQL 2005 开启OpenRowset/OpenDatasource的办法
- 史玉柱第二款网游《巨人》今日公测
- geodatabase的架构
- 建立隐藏目录
- Ext2 中如何换行 布局?
- 介绍一个经典配置包括Catalyst 6509 4006交换机配置方案
- ChaosSea验证码0.20版
- C++学习计划
- asp 内容分页
- ZK3.0.4发布
- Java JDK的安装与配置
- 互联网进化断代史第三纪—女娲纪
- 动态分配内存
- 互联网进化断代史第二纪-盘古纪
- 互联网进化断代史创世纪---混沌纪
- switch语句使用时注意事项
- switch语句使用时注意事项
- 拥有了自己的博客