前段时间在做一个项目,要求将SharePoint 的 OWA(Office Web Apps)中的文档显示页面嵌入到另外一个OA系统中,提供给用户可以通过浏览器查看SharePoint文档的能力。

嵌入我们能想到的方法就是 Iframe,这里我们暂且忽略可能存在的SSO问题。

当将SharePoint页面嵌入到Iframe中的时候,遇到了一个问题。

“此网页不能显示在一个框架中 ……”,后来经过反复的查找原因,也参考了国外的网站内容。

X-Frame-Options 就是它折磨了我一天多。后来在发现在我买了很久却只看了一章的书里有这个内容的介绍,《白帽子讲Web安全》中有一章就介绍了 X-Frame-Options,主要用来防止 ClickJacking(点击劫持)。是一种安全策略。

这个时候就不难理解SharePoint为什么会出现这种错误了。

错误原因找到了,接下来就是 解决它。

解决的思路是 用程序将 X-Frame-Options 删除掉。这样做有些冒险。但在内网环境中,我倒觉得完全可以一试。

具体方法

1. 在VS中创建一个SharePoint 解决方案项目,选择场解决方案。

2. 在项目中添加一个Feature,并为Feature添加Event事件。

3. 右键点击项目名称,选择新建项。选择ASP.Net模块。

4. 输入以下代码。

public class PermissiveXFrameHeaderModule : IHttpModule

{

private const string XFRAMEOPTIONS_HEADERNAME = "X-FRAME-OPTIONS";

private void context_PreSendRequestHeaders(object sender, EventArgs e)

{

HttpApplication application = (HttpApplication)sender;

application.Response.Headers.Remove("X-FRAME-OPTIONS");

}

public void Dispose()

{

}

public void Init(HttpApplication context)

{

context.PreSendRequestHeaders += new EventHandler(this.context_PreSendRequestHeaders);

}

}

5. 在Feature的事件程序中 添加代码如下

public class Feature1EventReceiver : SPFeatureReceiver

{

public override void FeatureActivated(SPFeatureReceiverProperties properties)

{

SPWebApplication application = (SPWebApplication)properties.Feature.Parent;

foreach (SPWebConfigModification modification in this.Modifications)

{

application.WebConfigModifications.Add(modification);

}

application.WebService.ApplyWebConfigModifications();

application.Update();

}

public override void FeatureDeactivating(SPFeatureReceiverProperties properties)

{

SPWebApplication application = (SPWebApplication)properties.Feature.Parent;

foreach (SPWebConfigModification modification in this.Modifications)

{

application.WebConfigModifications.Remove(modification);

}

application.WebService.ApplyWebConfigModifications();

application.Update();

}

private SPWebConfigModification[] Modifications

{

get

{

SPWebConfigModification[] modificationArray = new SPWebConfigModification[1];

SPWebConfigModification modification = new SPWebConfigModification("add[@name='PermissiveXFrameHeaderModule']", "configuration/system.webServer/modules");

modification.Owner = "PERMISSIVEXFRAME";

modification.Sequence = 0;

modification.Type = 0;

modification.Value = "";

modificationArray[0] = modification;

return modificationArray;

}

}

6. 最后一步 就是部署它 就ok了

好吧,我承认我这个参考了老外写的东西,但日子有点久了,实在不知道他是谁了 blog地址是什么了。

sharepoint页面嵌入_在其他系统Iframe中显示SharePoint 页面相关推荐

  1. iframe中由一个页面跳转到另一个页面

    1.HTML(父页面中存放iframe) <div ><iframe scrolling="no" id="main" name=" ...

  2. html页面中使用 JS 返回上一页及返回上一页并刷新,iframe中打开指定页面,跳转到指定页面

    html页面中使用 JS 返回上一页及返回上一页并刷新,iframe中打开指定页面,跳转到指定页面. 常用方法: window.history.go(-1); //返回上一页 window.histo ...

  3. QU不可用计算机,Win10电脑系统属性中显示处理器和已安装的内存不可用的解决方法...

    我们在使用Win10系统的过程中,在系统属性中发现处理器和已安装的内存出现不可用的情况,虽然提示不可用,但是电脑系统已经是可以正常运行的,如果真的处理器和内存不可用,那么肯定无法开机了,说明问题还是存 ...

  4. sharepoint页面嵌入_在SharePoint 2010页面中嵌入SWF文件

    在SharePoint 2007之前的版本中,我们可以像在普通的html页面里一样,在SharePoint页面中插入Flash文件.但是,当我在2010里做相同的工作时却发现始终是提示"没有 ...

  5. iframe嵌套显示整个页面_【HTML】框架标签lt;iframegt;

    说明 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面. 格式语法: 注:该URL指向不同的网页. height 和 width 属性用来定义iframe标签的高度与宽度.属性默认以像素为单位 ...

  6. js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...

  7. win10默认浏览器不显示谷歌浏览器_浅析win10系统谷歌浏览器网页显示不正常的应对办法...

    今天小编给大家浅析win10系统谷歌浏览器网页显示不正常的应对办法,谷歌浏览器是一款设计简单.高效的Web浏览工具,因此受到很多用户的喜爱.但有用户反馈,遇到了谷歌浏览器网页打开显示不正常的问题,不知 ...

  8. 前端页面嵌入word文档_word文档怎样加页面

    word文档怎么加页 一.添加页在WORD中,使用键盘组合键:Ctrl + 回车键可以添加页. 方法2:单击页面布局---->分隔符---->分页符,如图所示. word文档怎么在两页之中 ...

  9. 拦截器重定向页面 设置不在 iframe中显示

    如果你要重定向到 login 页面可以在 login 页面的head中加入 <script type="text/javascript">if (window != t ...

最新文章

  1. Pidgin下使用Gtalk问题
  2. 【大白话系列】带你进入网络的世界【都说计网难,一篇即可激发你的兴趣】
  3. VTK:几何对象之Cube
  4. LeetCode 2063. 所有子字符串中的元音(数学)
  5. 内存分配知识:全局,局部,静态变量
  6. 相机标定-opencv
  7. 鸿蒙系统简介ppt,鸿蒙来了!华为到底采用的是什么逆天的研发体系?500页PPT详解...
  8. RTI_DDS自定义插件开发 7 资源
  9. Web前端开发常用9个开源框架
  10. 7月1日天刀服务器维护,天涯明月刀7月1日满级新服_天刀满级新服天命风流入君怀_3DM网游...
  11. 每日 30 秒 ⏱ 强风吹拂
  12. python百度地图显示路径_百度地图获取规划路径信息
  13. 第一篇:呼叫中心发展史
  14. 一个小工具,帮你找到赚钱思路
  15. 【必选项提示小方法】vue处理多个条件选择时,判断必选项没有选择的弹出对应的提示【通俗易懂,详细注释】
  16. java rgb cmyk_Java CMYK图片转RGB图片(TwelveMonkeys方式)
  17. 装修工程施工质量控制工作方法及措施
  18. 智慧企业的基础——知识中台
  19. 2021.1.30课程摘要(逻辑教育-王劲胜)
  20. Python 中的Numpy函数

热门文章

  1. UI设计中配色专辑素材|做图配色,一键搞定
  2. qq动态页面变方格_腾讯QQ音乐9.7.5正式版更新:「歌手主页个人主页」界面全新改版...
  3. python 条形图 负值_Python处理JSON数据并生成条形图
  4. Python爬虫项目---从wiley网站批量下载文章
  5. Qemu 简述 | 转
  6. 深入浅出 eBPF: (Linux/Kernel/XDP/BCC/BPFTrace/Cillium)
  7. Libco是一个C/C++协程库,在微信服务中广泛使用
  8. Valgrind动态分析工具
  9. Linux异步管道多线程速率测试
  10. 模块间同步消息队列的设计