借力于QuickPart,快速开发IFrameWebPart,三分钟搞定!!

为了能平稳将我们单位的内网门户升级过渡到sharepoint,就需要我自己写一些webpart来满足需求。

要解决的第一个问题就是如何通过新的门户登陆老的OA,我目前不打算使用单点登陆的解决方案,所以构思了一下解决办法:

先在oa部分写一个loginform.asp页面,上面用于登录信息的输入,如下:

在sharepoint门户页面上写一个webpart,通过iframe调用loginform.asp来实现登陆,这样就可以把多种类型的登陆页面统一集中到一个门户页面上了。

说干就干,先在sharepoint server安装的机器上安装quickpart,Kaneboy很贴心,这次的quickpart包中包含了InstallSolution.bat文件,解压后直接运行该文件,就安装好了,下面就是调整站点的web.config文件
把这句
<trust level="WSS_Minimal" originUrl="" />
改为
<trust level="Full" originUrl="" />

在浏览器中进入sharepoint站点的Web Part Gallery中,点NEW,将

Populate Gallery出来,这时quick part的安装就结束了,下面利用我新安装的visual studio .net 2005 sp1来做一个用户控件。
先新建一个ASP.NET Web 应用程序项目


在项目中添加一个Web用户控件,名为IFrameWebPart,IFrameWebPart.ascx.cs中代码为
 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Collections;
 5using System.Web;
 6using System.Web.Security;
 7using System.Web.UI;
 8using System.Web.UI.WebControls;
 9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11
12namespace BoooLee.QuickWebPart.UserControls
13{
14    public partial class IFrameWebPart : System.Web.UI.UserControl
15    {
16        //目标url成员变量
17        private string _SrcUrl;
18
19        protected void Page_Load(object sender, EventArgs e)
20        {
21
22        }

23
24        //目标url属性
25
26        [Personalizable]
27        [WebBrowsable]
28        [WebDisplayName("地址")]
29        [WebDescription("要在IFrame中显示的页面地址.")]
30
31        public string SrcUrl
32        {
33            get{return _SrcUrl;}
34            set{_SrcUrl=value;}
35        }

36    }

37}

IFrameWebPart.ascx文件中的代码为
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="IFrameWebPart.ascx.cs" Inherits="IFrameWebPart.IFrameWebPart" %>
<iframe height="100%" width="100%" src="<%=SrcUrl %>"></iframe>

编译后生成的IFrameWebPart.dll复制到站点根目录下的bin目录中,IFrameWebPart.ascx复制到站点根目录下的wpresources目录中。

然后进入站点的Edit Page模式并Add a Web Part,因为我们的iframe web part是一个普通的web part,所以在弹出的web part选择窗口中选择Quick Part,

编辑刚添加的QuickPart属性,在User Control List中选择IFrameWebPart,Custom Properties列出了我刚定义的用户控件属性,地址里输入一开始写好的用于登陆OA的loginform.asp所在地址,然后确定。

这就是最终效果


废话时间:
今天心情很好,给大家汇报一下俺家附近的一家韩国烧烤小店,味道很正,价格便宜,前两天和朋友去的,发几张照片谗谗大家,嘿嘿!

原文地址:https://www.cnblogs.com/booolee/p/595746.html