為了能平穩將我們單位的內網門戶升級過渡到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所在地址,然後確定。
這就是最終效果
廢話時間:
今天心情很好,給大家彙報一下俺家附近的一家韓國燒烤小店,味道很正,價格便宜,前兩天和朋友去的,發幾張照片讒讒大家,嘿嘿!