Sharepoint学习笔记—习题系列--70-573习题解析 -(Q133-Q135)
Question 133
You create a Web Part that updates a list.
You need to ensure that users can use the Web Part to update the list, regardless of the users' permissions to the list.
What should you use in the Web Part?
A. the SPSecurity.AuthenticationMode property
B. the SPSecurity.CatchAccessDeniedException property
C. the SPSecurity.RunWithElevatedPrivileges method
D. the SPSecurity.SetApplicationCredentialKey method
解析:
本题一看还是关于提升用户权限的题目,所以直接可以定位在选项C上。
至于其它选项:
选项A. the SPSecurity.AuthenticationMode property 是个只读属性,用来表示在Sharepiont部署时用户的Authentication Mode(包括: Windows, Windows Live (formerly Passport), Microsoft ASP.NET 2.0 Forms-based, 或者 custom authentication of users等等模式)。
选项B. the SPSecurity.CatchAccessDeniedException property用于获取或设置Microsoft SharePoint Foundation 2010是否捕获和处理Page Request时发生的"access denied"错误。
选项D. the SPSecurity.SetApplicationCredentialKey method 用于设置加/解密时的口令。它一般存储在注册表(Regitsry)中,并应用于整个场。
所以本题目正确选项应该是C
参考:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.catchaccessdeniedexception.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.setapplicationcredentialkey.aspx
Question 134
You have a SharePoint solution that contains a custom site column and a custom content type.
You need to add the custom site column as a lookup field for the custom content type.
What should you create?
A. a Feature activation dependency
B. a new Feature event receiver
C. a new module
D. a new SharePoint mapped folder
解析:
本题题意是:你已经有一个Solution了,此Solution中包含一个用户自定义网站栏和用户自定义内容类型,现在你想把这个用户自定义网站栏作为一个查阅字段添加到用户自定义内容类型中。
选项A. a Feature activation dependency
此选项是想通过创建功能激活依赖关系来解决本题的问题,所谓功能激活依赖关系这个概念是用来表达对两个功能之间相互关系的要求。您可以针对同一个范围的功能或更大范围内的功能表达激活依赖关系。当某个特定范围内的某个功能对于其他范围内的其他功能具有依赖关系时,就存在跨范围激活依赖关系。跨范围激活依赖关系的一个示例是一个网站范围的功能依赖于一个网站集范围的功能。
通常将激活依赖关系用于两个目的:
1. 功能分组概念 当激活一个功能时,也可以激活其他功能。例如,当激活默认的“工作组协作”功能(在 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\TeamCollab 中)时,该功能将使用激活依赖关系来激活各种其他功能。当您激活工作组协作功能时,该功能将激活从属功能,并使指定的列表模板可供使用。当您停用该功能时,将停用从属功能(如果没有其他功能依赖于从属功能),从而使这些列表模板变得不可用。
2.功能资源保证 您可能需要一个网站集范围的功能来包含资源(例如,内容类型)和一个网站范围的功能来包含实现。可以使用激活依赖关系以确保激活这两个功能。
所以,功能激活依赖关系主要是建立Feature与Feature之间的联系,与建立用户自定义网站栏和用户自定义内容类型之间的联系并无任何关系。
选项B. a new Feature event receiver
功能事件接收器, 用于指定在功能的生存期中作为四个关键事件的一部分调用的服务器端代码例程:安装、激活、停用和删除。开发人员创建一个功能,并确定它在激活时必须对对象模型进行某些调用,在停用时必须执行某些清理。开发人员还创建一个自定义功能事件接收器类,并在功能定义中包括对该类的引用。
通过编写使用 SharePoint Foundation 对象模型的服务器代码,可以向用户自定义内容类型中添加Lookup类型的用户自定义网站栏,最佳实现方法是创建功能并在功能的事件接收器中编写代码。激活功能时,您的代码将在用户自定义内容类型中添加查阅类型的网站栏。
所以,选项B是本题的答案。
选项C. a new module
Moduel指定用于在元素指令清单中设置 SharePoint 网站的文件,可以将零个或多个 File 元素作为 Module 元素的子级。因此,Module是来引入Sharepoint网站资源的,它起不到在用户自定义网站栏和用户自定义内容类型之间建立联系的作用。
选项D. a new SharePoint mapped folder
在 SharePoint 中的一些常用文件夹,例如图像(Images)和布局(Layouts)文件夹都牢牢的定义在Sharepoint的文件层次结构中(就像一种默认的契约,不能由用户自行更改,而是某种程度地固化在系统架构中了)。 您可以将这些文件夹映射到 SharePoint 项目中,以便更加轻松地访问它们。 很显然,新Map一个映射文件夹也仅仅是为Sharepoint项目新建立一个快捷方式,与本题的在用户自定义网站栏和用户自定义内容类型之间建立联系毫无关系。
所以本题目正确选项应该是B
参考:
Walkthrough: Add Feature Event Receivers
http://msdn.microsoft.com/en-us/library/ee231604.aspx
http://msdn.microsoft.com/zh-cn/library/bb862634(v=office.12).aspx
http://msdn.microsoft.com/zh-cn/library/ee231521.aspx
Question 135
You are creating a custom content type named CT1.
You need to use a Feature to add an existing site column named SiteCol1 to CT1.
Which code segment should you include in the Feature?
A. <Field ID="SiteCol1"/>
B. <Field ID="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX}" Name="SiteCol1"/>
C. <FieldRef ID="SiteCol1" Name="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX}"/>
D. <FieldRef ID="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX}" Name="SiteCol1"/>
解析:
本题是想把一个已经存在的网站栏(SiteCol1)添加到用户自定义内容类型CT1中。
选项只涉及两个元素
1.<Field>
定义在 SharePoint 网站的列表基础结构中使用的内部数据类型。字段是用户可以向列表添加的信息列或属性。
ID :可选属性,类型为 Text。指定括号 ({}) 中包含的字段的 GUID。
Name: 必需属性,类型为 Text。字段的名称。这是字段的内部名称,并且保证在字段定义的生存期内绝不会更改。相对于列表中的字段集,它必须是唯一的。该名称基于用户定义的字段名称自动生成。
2.<FieldRef>
指定要在此内容类型中引用的列。
ID: 可选属性,类型为 Text。指定标识字段的 GUID
Name: 可选属性,类型为 Text。此属性提供将引用的字段的内部名称
从上面的描述我们就可以排除选项A.C了,因为这两个选项对ID的使用是错误的。
那么如何确定是使用Filed还是FieldRef呢?
当然,我们可以从上面对此两个元素的描述上判断。我们还可以从<Content Type>所包括的子元素来判断。
因为一个ContentType元素只能包括如下子元素:DocumentTemplate、FieldRefs、Folder、XMLDocuments,其中是找不到Field元素的,也即:你不能在一个ContentType中现定义一个新的Field元素,而只能是引用一个已经存在的Field。
所以本题目正确选项应该是D
参考:
http://msdn.microsoft.com/en-us/library/aa543225.aspx
http://msdn.microsoft.com/zh-cn/library/aa544268(v=office.14).aspx