0

我正在使用 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 信任级别。

有任何想法吗?

谢谢

4

1 回答 1

1

您可以尝试使用反射器。这应该向您显示该类的 CAS 权限。

或者使用WSPBuilder,它将使用反射为您生成 CAS 文件。我推荐这个选项,因为您不必担心再次编辑您的 CAS 文件!

于 2009-08-03T19:56:33.113 回答