0

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 信頼レベルに更新されます。

何か案は?

ありがとう

4

1 に答える 1

1

Reflector を使用してみてください。これにより、そのクラスの CAS 権限が表示されます。

または、リフレクションを使用して CAS ファイルを生成するWSPBuilderを使用します。CAS ファイルの再編集について心配する必要がないため、このオプションをお勧めします。

于 2009-08-03T19:56:33.113 に答える