WSPBuilder,配置存储和部分信任的呼叫者

时间:2009-06-09 08:56:38

标签: sharepoint wspbuilder wsp

是否有人使用WSP Builder打包使用Config Store (http://www.codeplex.com/SPConfigStore)的解决方案并部署到Web应用程序的bin目录?

当我尝试在我的代码隐藏文件中引用配置存储时,我得到了这个异常......

System.Security.SecurityException:该程序集不允许部分信任的调用者

我已将部分信任的调用者属性添加到我的项目

[assembly: AllowPartiallyTrustedCallers()]

和我的方法上的sharepoint权限属性

[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, Impersonate = true)] 
[SharePointPermissionAttribute(System.Security.Permissions.SecurityAction.Demand, ObjectModel = true)]

但这似乎没有做任何事情,我还指定了一个具有正确IPermission的自定义CAS策略

<IPermission class="Microsoft.SharePoint.Security.SharePointPermission, Microsoft.SharePoint.Security, version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" version="1" ObjectModel="True" UnsafeSaveOnGet="True" Unrestricted="True" />

仍然没有成功,当然其他人也这样做了,我必须遗漏一些东西

我正在使用WSP Builder版本1.0.5。

2 个答案:

答案 0 :(得分:1)

您已将[assembly:AllowPartiallyTrustedCallers()]添加到您的程序集中,因此您的程序集将允许部分信任的呼叫者呼叫IT。 但ConfigStore本身没有该属性。

是否可以将您的DLL添加到GAC? (简单的办法)。 或者将[assembly:AllowPartiallyTrustedCallers()]添加到ConfigStore项目中。

答案 1 :(得分:0)

您是否将程序集添加到web.config SafeControls部分?

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

此外,您可能需要降低web.config中的信任级别:

<trust level="WSS_Minimal" originUrl="" />

请参阅ASP.Net and SharePoint trust levels的MSDN文档。