首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint 2010允许特定页面的代码块

SharePoint 2010允许特定页面的代码块
EN

Stack Overflow用户
提问于 2012-11-15 02:04:16
回答 2查看 2.7K关注 0票数 1

我正在尝试在SharePoint 2010的aspx页面中使用C#代码。我一直收到“不允许使用代码块”的错误。

我的aspx页面位于(服务器)/SitePages/ajax.aspx:(如果重要的话,可以在SharePoint Designer 2010中编辑)

代码语言:javascript
复制
<%@ Page Language="C#" %>
<script runat="server">
    Response.Write("Hello world");
</script>

我在C:\Program Files\Common Files\Microsoft \Web Server Extensions\14\ web.config中添加了以下内容

代码语言:javascript
复制
<PageParserPath VirtualPath="/SitePages/ajax.aspx" CompilationMode="Always" AllowServerSideScript="true" />

下面是我添加到web.config中的同一行,显示在上下文中:

代码语言:javascript
复制
<SharePoint>
  <SafeMode 
        MaxControls = "200"  
        CallStack = "false"
        DirectFileDependencies ="10"
        TotalFileDependencies = "50"
        AllowPageLevelTrace = "false"
        >
        <PageParserPaths>
            <PageParserPath VirtualPath="/SitePages/ajax.aspx" CompilationMode="Always" AllowServerSideScript="true" />
        </PageParserPaths>

为什么我仍然得到“代码块”错误?有没有别的安全开关?

(我知道自定义web部件是首选的解决方案,但我不认为这在这里就足够了,因为返回值应该是json -这是一个通过ajax访问以获取数据的页面。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-15 02:22:00

我想,您必须在位于C:\inetpub\wwwroot\wss\VirtualDirectoriesapplication folder\web.config的Web应用程序web.config中定义PageParserPath元素。

票数 0
EN

Stack Overflow用户

发布于 2012-11-15 02:13:39

将aspx页上载到文档库时(这就是您使用SharePoint Designer时要做的事情),aspx页不能有内联代码块,也不能有代码隐藏。这主要是一种安全机制。它可以防止任何老用户上传带有恶意内容的aspx页面,然后在您的服务器上以完全权限执行,并将内容提供给(可能)任何用户。

对于要执行代码的aspx页面,需要将其编译为WSP并部署到服务器上的GAC。当您这样做时,您可以使用内联代码块,或者更好的是,拥有一个带有代码隐藏的aspx页面。若要将该页发布到站点,您需要将visual studio中的项目编译为WSP,通过以足够的权限登录计算机将其部署到服务器,然后添加和部署代码。这确保了非开发人员不能将可执行代码上传到您的站点。

最后,在更不相关的方面,由于您实际上并不想显示页面,而只是想显示JSON内容,所以您可能根本不应该使用aspx页面(尽管您可以使用它)。您可能只需要创建一个HTTP处理程序或一个web服务来写出适当的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13384578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档