1

Web フロント エンド (WFE) にあるアプリケーション ページからサーバーの全体管理にあるリストにアクセスできるようにする必要があるという要件があります。私が抱えている問題は、WFE のアプリケーション プール ユーザーが SharePoint_AdminContent データベースにアクセスできないため、アクセスが拒否され、両方とも独自のアプリケーション プールを持っていることです。

ログには、次のように表示されます。

  • プロセス ID に戻す
  • SqlConnection.Open の前の現在のユーザー: 名前: SharePointDemo\SPContentPool SID: S-1-5-20 ImpersonationLevel: なし
  • SqlConnection.Open 後の現在のユーザー: 名前: SharePointDemo\SPContentPool: S-1-5-20 ImpersonationLevel: なし
  • SQL Server インスタンス 'SPNSQL' のデータベース 'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275' のユーザー 'SPContentPool' に対する SQL データベース権限が不十分です。SQL Server からの追加のエラー情報を以下に示します。オブジェクト 'proc_EnumLists'、データベース 'SharePoint_AdminContent_53169fb3-137c-44b2-b90e-961b656e4275'、スキーマ 'dbo' に対する EXECUTE 権限が拒否されました。

SharePoint\System ユーザー トークンを使用する Daniel Larsons メソッド ( http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!1919.entry ) を試すだけでなく、withelevatedprivileges で実行しようとしましたが、次のようにのみ昇格するようです。アプリケーションプールとして高く。

管理 Web アプリケーションのアプリケーション プールを偽装する簡単な方法があることを願っていますが、まだその方法を見つけることができませんでした... または、プロセス ID をアクセスできるものに変更します

どんな考え、アイデア、または解決策もありがたく受け取っています!

フィル

4

3 に答える 3

6

リスト Web サービスを使用して、リスト アイテムにアクセスしてみてください。Web サービスに接続する前に資格情報を設定します。

于 2009-05-15T12:22:26.610 に答える
1

問題は、CA アプリケーション プールと WFE アプリケーション プールが別のアカウントで実行される可能性が高いことです。開発者にとっては面倒ですが、これはベスト プラクティスです。これを回避するために SPSecurity.RunWithElevatedPrivileges を使用して実行できる昇格権限はありません。

セキュリティ ポリシーでこれが許可されている場合は、WFE Web アプリケーションを実行するアプリケーション プールに、サーバーの全体管理アプリケーション プールと同じ資格情報を与えることができます。

これは、次のサービス アカウント画面を使用して行うことができます。

http:///_admin/FarmCredentialManagement.aspx

Web サービス ルートをたどる場合は、独自の Web サービスをロールして、HTTP を介した過度の「チャット」を防止することをお勧めします。

于 2009-06-04T11:19:12.067 に答える
1

通常の Windows 偽装を試しましたか? おそらく、サービス アカウントになりすましてリストにアクセスできるはずです。

于 2009-05-15T14:16:40.563 に答える