我正在尝试将现有网站的现有ASPX页面移植到新的Sharepoint网站中。 ASPX页面是一个相对简单的表单,带有一些服务器端控件,能够通过电子邮件发送表单提交和“Captcha”。当前网站在bin文件夹中注册了Newtonsoft.CaptchaControl dll。所以我需要做的是:
将ASPX页面移植到Sharepoint网站内容的正确位置
使用Sharepoint正确注册CaptchaControl dll,链接允许ASPX页面使用它
答案 0 :(得分:1)
设置申请页
ASPX页面在SharePoint中称为“应用程序页面”。您可以将ASPX复制到“12 Hive”下的layouts
文件夹中。 (“%CommonProgramFiles%\ Microsoft Shared \ web server extensions \ 12 \ TEMPLATE \ LAYOUTS”)。然后,可以从{URL}/_layouts/CustomPage.aspx
下的任何SharePoint网站访问它(例如http://site/_layouts/CustomPage.aspx
或http://site/subsite/_layouts/CustomPage.aspx
)。
添加安全控制条目
看起来您知道在IIS下的SharePoint站点的bin
文件夹中放置您的aspx页面的任何DLL以及CaptchaControl.dll。必须使用强名称密钥对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应用程序中完全受信任。最好将权限限制为实际需要的权限。