2009-09-10 90 views
1

我想將現有的ASPX頁面,這是現有的網站的一部分,移植到一個新的Sharepoint網站。 ASPX頁面是一個相對簡單的表單,帶有一些服務器端控件,可以通過電子郵件發送表單提交和「驗證碼」。當前網站有註冊在bin文件夾中的Newtonsoft.CaptchaControl dll。因此,我需要做的是:端口ASPX頁面Sharepoint

  1. 港ASPX頁面到SharePoint網站

  2. 正確與SharePoint和鏈接註冊CaptchaControl DLL的內容中的適當位置,使ASPX頁面利用它

回答

1

設置應用頁面

ASPX頁面將被稱爲SharePoint中的「應用程序頁面」。您可以將ASPX複製到「12 Hive」下的layouts文件夾。 (「%CommonProgramFiles%\ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ LAYOUTS」)。然後可以從{URL}/_layouts/CustomPage.aspx(例如http://site/_layouts/CustomPage.aspxhttp://site/subsite/_layouts/CustomPage.aspx)以下的任何SharePoint站點訪問。

添加安全控制項

它看起來像你知道的地方爲你的aspx頁面的任何DLL以及CaptchaControl.dll在IIS下的SharePoint網站bin文件夾。 DLL必須使用強名稱密鑰進行簽名。您還需要將DLL的強命名簽名添加到SharePoint站點的web.config文件中的SafeControls列表中。如果你打開web.config文件,你會看到的例子,如:

<SafeControl Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
    Namespace="Microsoft.SharePoint" TypeName="*" Safe="True" /> 

配置代碼訪問安全

假設你的控件實際上東西,你需要將其標記爲受信任SharePoint使用的代碼訪問安全性文件。將web.config中的信任級別從WSS_Minimal更改爲WSS_Custom。轉到「%CommonProgramFiles%\ Microsoft Shared \ web server extensions \ 12 \ CONFIG」並將wss_minimaltrust.config複製到wss_customtrust.config。編輯wss_customtrust.config並使用DLL的公鑰創建新的CodeGroup條目。例如:

<CodeGroup 
    class="UnionCodeGroup" 
    version="1" 
    PermissionSetName="FullTrust"> 
    <IMembershipCondition 
     class="StrongNameMembershipCondition" 
     version="1" 
     PublicKeyBlob="002400000480435694000000060200000024245452534131000400000100453261002888e278243eb86b47eea4be1b23451177126fb9c847085e66e895a64b148c675dabda94d9301f4886a0126887bcd067356affb16a5112baf3198525fc96c45f4178a6263e1a1132bb6c0a4cdaeaccd97b0d4ab42139585700c41e8481feff03e13f30bb0a10ffa7746770d144be94954b7a908fb9bb680ebe611f50f6db" /> 
</CodeGroup> 

注:這會使你的DLL SharePoint Web應用程序內的完全信任。將權限限制爲實際需要的權限是更好的做法。