RSS

Monthly Archives: 一月 2008

如何禁止掉SharePoint页面个性化?(续)

之前的文章里面,写了一个方法,来禁止掉SharePoint页面的个性化。但当时就有人问了,如果我只想管理员能够个性化页面,而非管理员不能做这个操作,又应该如何做呢?下面就是方法。注意:这个方法是基于SharePoint如何显示其“网站操作”菜单的原理,也就是说,这个方法是基于其原理的“倒推论”,我没有对这个方法进行过完整的验证测试…:(

首先,WSS 3.0的Master Page是使用了下面两个方法之一来显示页面右上方的那个“网站操作”菜单的。

1、直接在master page上使用“Microsoft.SharePoint.WebControls.SiteActions”控件,比如default.master就是这样:

image

2、或者,在manster page上使用“Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\PublishingActionMenu.ascx”这个用户控件(当然了,这个用户控件里面其实也是使用“Microsoft.SharePoint.WebControls.SiteActions”来的)。比如BlueBand.master:

image

所以,我下面说的这个步骤,就要根据你是使用的哪个master page,来决定是直接修改master page文件,还是修改那个用户控件。我下面的例子是用的default.master,也就是第一种情况。

那个SiteActions控件的用法是一个控件嵌套,类似于:

<SiteActions>
  <CustomTemplate>
    <FeatureMenuTemplate>
      <MenuItemTemplate />     <— 每个“MenuItemTemplate”表示网站操作菜单上的一个项目
    </FeatureMenuTemplate>
  </CustomTemplate>
</SiteActions>

找到表示“编辑页面”的那个“<MenuItemTemplate>”节点,加上两个属性“PermissionsString”和“PermissionMode”(”PermissionsString”的值表示必须具备此权限的用户才能使用这个菜单项,“FullMask”表示所有权限,“ManageWeb”表示管理当前网站):

image

嗯,还没有完。打开“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文件,然后动态的去更改“网站操作”菜单。)

image

OK,完成。理论上说,这个方法可以用更“优雅”的coding的方式来解决,然后再封装成一个solution package,但是…有时候快速解决问题让人更省心,不是吗?另外,我相信你可以从这篇blog里面学到除了禁止页面个性化之外的更多内容… :)

 

Posted by on 2008/01/30 in 未分类

45 Comments

Tags:

微软开放 Microsoft Office 二进制文档格式规范

总所周知,在Microsoft Office 2007中,微软引入了一种全新的文档格式:Open XML。由于Open XML是一种开放的文档格式(基于两种开放技术:XML、Zip),所以解决了过去Microsoft Office所使用的二进制文档难以交互、难以被第三方应用程序访问的问题。

但是自从微软决定将Open XML提交给ISO之后,从业界的反馈来看,很多人仍然非常关心过去的二进制文档格式(.doc, .xls, .ppt),并希望能得到其相关的技术细节文档。

经过慎重的考虑,微软决定再将Microsoft Office所使用的二进制文档格式公开。任何人和企业,在不违反相关协议的前提下,都可以免费得到其技术规范文件。现在,无论是全新的Open XML格式文档,还是过去的二进制格式文档,都不会再有人,或者企业,抱怨微软“藏着掖着”了吧。:)

如何获取二进制文档格式规范,请参看此篇KB中的“Royalty-Free File Format Programs”一节。

 

Posted by on 2008/01/21 in 未分类

55 Comments

Tags:

如何禁止掉SharePoint页面个性化?

今天有人在MOSS开发的MSN群中提了一个问题,就是如何彻底禁止对SharePoint页面的个性化?也就是不允许任何人,包括管理员,使用SharePoint页面个性化功能来更改页面。当时隐约觉得应该可以通过修改Master Page上的SPWebPartManager控件来完成,之后试验了一下,确实可以。

使用SharePoint Designer打开,或者创建一个新的Master Page,找到SPWebPartManager控件,如下所示,修改它的属性“Personalization-Enabled”为“false”即可。

image

让SharePoint站点使用此Master Page之后,就会看到“编辑页面”这个按钮已经变成灰色,无法选择了:

image

 

Posted by on 2008/01/17 in 未分类

54 Comments

Tags:

敏捷软件开发:原则、模式与实践(C#版)

刚才在china-pub看到《敏捷软件开发:原则、模式与实践(C#版)》已经出版了。这本书是以前那本《敏捷软件开发:原则、模式与实践》的C#版,这是不是说明C#程序员的数量已经多到Robert Martin无法忽视的程度了呢?:)

既然说到了图书,就再推荐一本我现在正在温习的,《高级.NET程序设计》(《Advanced .NET Programming》,中文版翻译质量比较差劲)。此书的内容完全对得起书名中的“Advanced”,要比一般的《Professional XXX》好得多,如果你已经看完了《CLR via C#》,那么强力推荐这本。可惜的是此书的作者并未随着.NET升级而对书的内容进行更新,但基本上书中的内容并未过时。

 

Posted by on 2008/01/03 in 未分类

47 Comments

Tags:

wiki.msotec.net

创建了一个关于SharePoint的Wiki:wiki.msotec.net,我会不断将一些内容添加到上面。如果你感兴趣添加或编辑上面的内容,可以使用你的Live ID登录并注册(需要经过管理员审批,一般不会拒绝:))。

另外,这个站点使用了Live ID集成认证,我写了一个定制的Live ID Membership Provider。如果对集成Live ID感兴趣,可以参考这里(开心快给我宣传推广费:))。那个for SharePoint的Live ID Membership Provider我也将源码放在了wiki.msotec.net上。

 

Posted by on 2008/01/02 in 未分类

46 Comments

Tags: