sharepoint 自定義服務器代碼的頁面(一)

大概2年前剛剛接觸sharepoint開發的時候,由於不熟悉,總想套用asp.net的頁面開發,
現在總結一下如何自定義sharepoint頁面開發。
首先明確sharepoint的頁面類型(參照msdn)
1 母板頁,就是決定整個site風格的頁面,默認情況下是這個文件
C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/GLOBAL/default.master
2 應用程序頁/_layout頁,這些頁面時存在IIS虛擬目錄中的,也就是說物理存在的,默認情況下存在於
C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/LAYOUTS文件夾下,
通常我們不會改動這些頁面,他們不能添加web部件。
3 內容頁面, 指的就是通常可以承載webpart的頁面,這種頁面可以用sharepoint designer修改和查看,
默認沒有被spd修改,分成2個部分存儲,一部分在前端的web服務器,另一部分在sharepoint內容數據庫中,
用spd修改後,就存儲在sharepoint數據庫中,區別我就不說了。
明確了3種類型後,就可以開發了。
(1) 用spd開發含有代碼的內容頁面,在spd中創建一個頁面,並且加入如下代碼
<script type="text/c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
 this.Response.Write("Hello World!");
}
</script> 
右鍵在瀏覽器中預覽,會出現異常

這是因爲sharepoint做了安全限制,默認是不允許添加後臺代碼的。
但是我們可以通過修改webconfig文件,讓它正常運行。
<PageParserPaths>
 <PageParserPath VirtualPath="/Dalian/custompage1.aspx" CompilationMode="Always" AllowServerSideScript="true" />
</PageParserPaths>

 


雖然通過這種方法我們可以寫入服務器端代碼,但是不推薦這樣做
原因是這樣相當於變相的提升了某些用戶的權限,只要可以通過spd
訪問這個頁面,就可以編寫服務器代碼了,安全性降低了。
(2)自定義應用程序頁面,這種頁面和我們平時開發的asp.net頁面,這種頁面可以部署
在LAYOUTS文件夾或者虛擬目錄下(我沒有試過),我喜歡用Feature來部署。
第一步 創建一個asp.net工程,會得到一個aspx文件和一個dll文件(不用codebehind就不用dll了)
添加個簡單的代碼
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Response.Write("Hello World!");
        }
第二步 部署,創建一個Feature, 一個文件夾“CusPage”在...12/TEMPLATE/FEATURES/下並且包含2個xml文件
    Feature.xml如下:
 <Feature
 Id="274FC071-C858-4cd2-A602-61D2275A9139"
 Title="Customize Page"
 Description="Customize Page ..."
 Scope="Web"
 Hidden="FALSE"
 xmlns="http://schemas.microsoft.com/sharepoint/" >
 <ElementManifests >
  <ElementManifest Location="Elements.xml"/>
 </ElementManifests>
 </Feature>
    Elements.xml如下:
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
 <Module Name="CustomizePage" >
  <File Url ="CustomPage1.aspx" Type="Ghostable" IgnoreIfAlreadyExists ="TRUE"  />
 </Module>
</Elements>
把第一步中的aspx文件也放到這個目錄下, 把dll文件放到對應sharepoint網站的bin目錄下
打開命令行執行

在網站設定中,啓用這個feature

 

結果


這樣就OK了,並且打開spd會看到這個頁面, 但是看到頁面我們就會意識到問題了,這個頁面和我們sharepoint頁面
風格不一致,而且我們可能還要使用webpart在這個頁面,這兩個問題時可以解決的,
會在下回的文章中寫如何解決他們。

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章