參考
http://tod1d.net/blogs/tech/pages/Running-ASP.NET-applications-under-Community-Server.aspx
總結
以下步驟將告訴您如何將原本的 ASP.Net 頁面整合到 Community Server
步驟1: 安裝與設定Community Server
在整合前,您必須先安裝一套Community Server,並且選擇相同的.Net Framework版本安裝,例如原本的網頁是用ASP.Net 1.1 就要安裝 Community server for ASP.Net 1.1,如果還沒下載,可以到官方網站下載區,下載Web Install版本
下載後將檔案解壓縮並上傳到伺服器上的一個目錄,例如 wwwroot\cs21 ,並且建立一個虛擬目錄指到此目錄的web下面,例如 wwwroot\cs21\web ,上傳後請利用瀏覽器開啟線上安裝程式設定與建立資料庫,線上安裝網址 http://yourdomain/cs/installer/default.aspx
※安裝於根目錄也可以,但推薦安裝於虛擬目錄
步驟2: 複製必要的檔案到您的網頁專案
CS安裝完成後即可開始準備整合到您自己的專案,首先開啟您的Visual Studio.Net 2003 (ASP.Net 1.1) or 2005 (ASP.Net 2.0) 複製並加入以下參考到 bin 目錄
ASP.Net 1.1
- CommunityServer.MemberRole.dll
- CommunityServer.Components.dll
- MemberRole.dll
- CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
- CommunityServer.SqlDataProvider.dll
ASP.Net 2.0
- CommunityServer.ASPNet20MemberRole.dll
- CommunityServer.Components.dll
- CommunityServer.Reader.dll (此檔案應該為非必要,後續解說)
- CommunityServer.SqlDataProvider.dll
當然複製越多的 dll 您就可以有越多功能,但會造成伺服器更多的負擔,並且通常您應該是不會用到這些功能,另外您還要複製
- communityserver.config
- SiteUrls.config
- 與 languages 目錄
完成後您還要整合 web.config ,建議把 cs 目錄的 web.config 複製到您的專案,然後再加入您需要修改的部分
步驟3: CS功能簡化
大部分CS的功能都會在 cs 目錄下執行,應該用不到在您自己的專案下執行,所以關掉大部分用不到的CS功能來減少伺服器負載與增加效率
首先開啟 communityserver.config,找到 "<Jobs minutes" ,這區塊都是CS的自動執行服務,都用不到了,再來找到<CSModules> ,這些是宣告CS有哪些模組,這僅需要留下基本的模組,其他的大都不必要
<CSModules>
<add name = "InkModule" type = "CommunityServer.Components.InkModule, CommunityServer.Components" />
<add name = "CSMembershipRulesModule" type = "CommunityServer.Components.CSMembershipRulesModule, CommunityServer.Components" />
<add name = "CSValidationModule" type = "CommunityServer.Components.CSValidationModule, CommunityServer.Components" />
<add name = "CSCatastrophicExceptionModule" type = "CommunityServer.Components.CSCatastrophicExceptionModule, CommunityServer.Components" />
<add name = "CSExceptionModule" type = "CommunityServer.Components.CSExceptionModule, CommunityServer.Components" />
<add name = "UserLastVisit" type = "CommunityServer.Components.UserLastVisitModule, CommunityServer.Components" />
<add name = "FullyQualifiedUrlModule" type = "CommunityServer.Components.FullyQualifiedUrlModule, CommunityServer.Components" />
<add name = "AuditDeletedPostContentModule" type = "CommunityServer.Components.AuditDeletedPostContentModule, CommunityServer.Components" />
</CSModules>
步驟4: 將程式碼加入您的程式
到此已經可以把 CS 整合到您的網頁專案,試看看在您的首頁加入以下程式碼
18 protected void Page_Load(object sender, EventArgs e)
19 { 20 CommunityServer.Components.User currentUser =
21 CommunityServer.Components.CSContext.Current.User;
22 Label1.Text = currentUser.Username;
23 }
完成後編譯如果動作正常即可發現使用者名稱顯示在 label1 的位置上,另外要注意的就是完成後,您的專案就變成了 表單 認證 ( <authentication mode="Forms" /> )
步驟5: 確定原CS網頁是否正常工作
由於您複製了 web.config 到根目錄,會造成您原本 cs 有些衝突,您可以還要修改一下 cs 專案下的 web.config ,把衝突的地方刪除
恭喜你,完成了整合,您可以參考一些CS程式碼來自訂一些功能到您的網頁上,例如自己設計登入表單或介面到您的網頁專案上