2009-09-10 88 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应用程序内的完全信任。将权限限制为实际需要的权限是更好的做法。