portalsitemapprovider オブジェクトを使用してナビゲーション サーバー コントロールを作成しています。
コントロール CAS で SharePoint オブジェクト モデル アクセスと偽装権限を割り当てました。ただし、これにもかかわらず、サイトマップのルート ノードの子ノードを取得できず、エラーが返されます。
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 信頼レベルに更新されます。
何か案は?
ありがとう