0

ドキュメント ライブラリから情報を収集する Web パーツを作成しました。これは、「管理」Web アプリケーションの下でうまく機能します (非匿名ユーザー用の管理サイトと匿名ユーザー用の www サイトの 2 つの Web アプリがあります。これら 2 つのサイトは同じコンテンツを共有しています)。

www サイトを開くと、ドキュメント ライブラリへの参照でない場合、空の Web パーツが表示されます。ただし、ドキュメント ライブラリにリンクすると、401 UNAUTHORIZED と表示されます。管理サイトと www サイトの両方から、同じドキュメント ライブラリを CQWP で正常にクエリできます。

何か助けはありますか?

ありがとう。

4

2 に答える 2

2

解決しました。

SPSiteオブジェクトsiteCollectionのプロパティAllWebsから列挙されたSPWebオブジェクトは、すべてのWebオブジェクトのセキュリティチェックを実行しているようです。

ユーザーが特定のWebオブジェクトに対する権限を持っていない場合、上位レベルでエラーがスローされ、401ページになります。

昇格された特権を使用すると、問題が解決しました。

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    foreach (SPWeb s in siteCollection.AllWebs)
    {...}
});

MSDNの記事: http: //msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx

于 2010-02-10T17:05:41.290 に答える
1

昇格された権限で実行する場合は注意してください。SharePoint は誰が要求を行っているかを認識しており、そのユーザーの権限に基づいて結果を調整できます。昇格された権限で実行すると、そのユーザー向けではない結果が返される可能性があります。

于 2010-02-11T20:20:00.800 に答える