我正在使用portalsitemapprovider对象来创建我的导航服务器控件。
我已在控件CAS中分配了sharepoint对象模型访问权限和模拟权限。尽管如此,我无法检索站点地图的根节点的子节点,它们只返回错误。
如果我将网络应用更改为完全信任,我可以检索子节点。
因此我的问题是为了完全访问站点地图提供程序对象中的数据需要哪些CAS策略,为什么我现在可以访问根节点而不是它的子节点?
示例代码:
PortalSiteMapProvider sp = PortalSiteMapProvider.WebSiteMapProvider;
PortalSiteMapNode rootNode = (PortalSiteMapNode)siteProvider.RootNode;
foreach (SiteMapNode node in rootNode.ChildNodes)
{
//this loop returns 1 item with title "Error" with no exception thrown.
}
我的大会有以下CAS请求:
[assembly: SharePointermission(SecurityAction.RequestMinimum, ObjectModel=true, Impersonate=true)]
使用部署清单中的approprite IPermission条目。部署Web应用程序后,web.config按预期更新为WSS_Custom信任级别。
有什么想法吗?
由于
答案 0 :(得分:1)
您可以尝试使用Reflector。这应该显示该类的CAS权限。
或者使用WSPBuilder,它将使用反射为您生成CAS文件。我建议使用此选项,因为您不必担心再次编辑CAS文件!