显示存储在SharePoint文档文件夹中的HTML页面

时间:2017-04-18 12:20:40

标签: html sharepoint sharepoint-2010

我正在开发一个SharePoint Web部件,该部件在页面上的不同div中显示许多不同的报告。在其中一个div中,我需要显示我们存储在SharePoint中“Documents”容器中的页面中的HTML。 HTML页面中的信息是从应用程序的几个不同部分检索的,并以不同的方式显示,因此基本上我们将其用作源数据。我正在尝试弄清楚如何从应用程序中访问该页面,并希望将链接存储到文件作为可配置设置,以便我可以为我们的dev / test / prod环境进行设置。

我已将HTML文件加载到“Doc​​uments”文件夹中,如果我手动浏览它,它会显示正常但如果我使用以下内容:

        final CellStyle cellStyle = wb.createCellStyle();
        //cellStyle.setFillPattern(FillPatternType.ALT_BARS);

        XSSFCellFill fill = new XSSFCellFill(CTFill.Factory.newInstance());
        final CTGradientFill ctGradientFill = fill.getCTFill().addNewGradientFill();
        ctGradientFill.setDegree(45);
        // ...
        ((XSSFWorkbook)wb).getStylesSource().putFill(fill);

        cell.setCellStyle(cellStyle);

我收到403错误,并在响应标题中显示消息“在从此位置打开文件之前,您必须首先浏览到该网站并选择自动登录的选项”。

我认为RunWithElevatedPriveleges会传递凭据,但我对SharePoint很新。不确定我是否使用了正确的方法,感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

将页面放入标准文档库,然后使用页面查看器Web部件。站点资产库用于其他自定义目的。您甚至不需要SharePoint Designer。页面查看器应设置为“网页”,因为网页查看器本质上是一个IFRAME。

如果仍然有问题......可能是Web应用程序级别的设置导致非Microsoft文件出现问题

转到中央管理员>管理Web应用程序。然后我选择了我的Web应用程序并单击了“常规设置”按钮。然后我将浏览器文件处理从“严格”更改为“允许”,这解决了我的问题。我已经包含了设置的附件,因此您可以阅读与之相关的文本。

enter image description here

答案 1 :(得分:0)

想出来。存在许多权限问题,但是一旦对这些权限进行了排序,这些代码就会起作用:

using (SPSite site = new SPSite(SPContext.Current.Site.ID))
{
    using (SPWeb web = site.OpenWeb())
    {
      SPFolder folder = web.GetFolder("MainFolder/Lists/MainFolderDocs");

      if (folder.Exists)
      {
         SPFile file = web.GetFile("/MainFolder/Lists/MainFolderDocs/Mainlist.html");
         if (file.Exists)
         {
             using (System.IO.StreamReader reader = new System.IO.StreamReader(file.OpenBinaryStream()))
                 {
                    string htmlCode = reader.ReadToEnd();
                    lChecklist.Text = htmlCode;
                 }
         }
       }
   }

}