我正在使用 portalsitemapprovider 对象来创建我的导航服务器控件。
我已经在控件 CAS 中分配了共享点对象模型访问和模拟权限。但是,尽管如此,我无法检索站点地图根节点的子节点,它们只会返回错误。
如果我将 Web 应用程序更改为在完全信任下运行,我可以检索子节点。
因此,我的问题是需要哪些 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)]
在部署清单中有适当的 IPermission 条目。部署 Web 应用程序后,web.config 按预期更新为 WSS_Custom 信任级别。
有任何想法吗?
谢谢