是否有人使用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。
答案 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文档。