如何在Sharepoint母版页中包含动态信息?

时间:2010-08-26 14:28:21

标签: sharepoint sharepoint-2007 web-config appsettings

我们正在创建几个(19)网站,以便在Sharepoint 2007中托管,并希望使用Google Analytics。第一点很容易,只需将Google Analytics javascript放在Sharepoint母版页中,所有内容都按预期工作。

但是,我们希望19个站点中的每个站点生成单独的统计信息,这可以通过为每个站点使用不同的ID来完成。我的第一个想法是将id存储在每个站点的web.config中,并更改母版页以便为javascript读取此内容:

<%= ConfigurationManager.AppSettings["google.analytics.key"]%> 

不幸的是,Sharepoint不喜欢这样说并且说:此文件中不允许使用代码块。

我的问题是:

有没有办法在Sharepoint母版页中从web.config读取appSettings?或

是否有更好的Sharepoint方式将特定于站点的信息导入母版页?或

我是否坚持为每个网站使用单独的母版页?

2 个答案:

答案 0 :(得分:6)

您提出的建议非常不安全,因为它允许任何使用sharepoint设计器的贡献者向母版页添加任何代码,这绝不是一个好主意。我建议在任何情况下使用服务器控件,这只需要几分钟的时间来开发,但之后会为你节省很多麻烦

答案 1 :(得分:5)

默认情况下,SharePoint不允许母版页中的代码,因此您需要将主页标记为对代码安全。在您的web.config中,您将具有以下设置:

<SharePoint>
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="10" totalFileDependencies="50" AllowPageLevelTrace="false">
  <PageParserPaths>
  </PageParserPaths>
</SafeMode>

您需要将其更改为包括:

<PageParserPaths>
    <PageParserPath VirtualPath="/_layouts/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>
</PageParserPaths>

这将告诉SharePoint允许母版页中的代码。您可以使用相同的想法来允许其他SharePoint位置中的代码。

另一种选择是使用代码隐藏,但我假设您根据自己的问题不想这样做。