2

実行するためにいくつかの構成を必要とするカスタムタイマージョブを作成しました。SPPersistedObject構成を階層オブジェクトストアに保存しようとしています。

SPWebApplication階層オブジェクトストアはSharePoint構成データベースに保存されているため、を親として保存しようとすると「セキュリティエラー」が発生します。

特権を昇格させてみましたが、現在のWebアプリケーションのアプリケーションプールアカウントであり、SharePoint構成データベースにアクセスする必要がないため、役に立ちません。

何か案は?

4

2 に答える 2

3

お気づきのように、階層型オブジェクト ストア (HOS) はコンテンツ データベースではなく、構成データベースに格納されています。

中央管理者以外のサイトのコンテキストで実行している場合、アプリケーション プールが使用するユーザー アカウントには、構成データベースへの書き込み権限がない可能性があります

おそらく開発者のインストールではこれが表示されないため (ネットワーク サービスのみで、アプリケーション プールのドメイン レベルのアカウントでセットアップすることはないでしょう)、これはちょっと厄介です。生産へ。

注 - SPSecurity.RunWithElevatedPrivileges を使用しても、これは変更されません。これは、制限されたユーザー アカウントから中央管理アプリ プール アカウントではなく、アプリケーション プール アカウントに昇格するだけだからです。

アプリケーション状態の管理の記事では、オプションの内訳を示し、HOS について述べています。

セキュリティ モデル - ユーザーが関連する SharePoint オブジェクト (SPFarm や SPWebApplication など) にアクセスするには、管理者権限が必要です。

これらの理由から、HOS は現実世界での使用が非常に限られていると思います。Farm/WebApp/Site および List レベルで設定を保存できる Property Bag Storage モデルを使用することをお勧めします:-

利点 - すべての構成ストレージ オプションの中でおそらく最も軽量で使いやすいです。

また、パフォーマンスと安定性の向上も報告されています。

実際、MSDN SharePoint Guidance Libraryは、階層構成マネージャーの実装にもプロパティ バッグ ストレージを使用しています。

于 2010-12-30T13:12:21.647 に答える
0

親切にあなたのために役立つかもしれない以下の記事に従って くださいhttp://www.bluedoglimited.com/SharePointThoughts/ViewPost.aspx?ID=271

同様にcodeplexのプロジェクト

http://features.codeplex.com/

于 2010-12-30T12:04:50.633 に答える