0

私は現在、SharePointを使用して次のような他のいくつかの内部サーバーからコンテンツを集約する大規模なイントラネットマッシュアップに取り組んでいます。

  • moss.myapp.internalserver.local-MOSSポータル
  • ssrs.myapp.internalserver.local-SQLServerレポートサービスレポート
  • app.myapp.internalserver.local-カスタムASP.NETMVCフォーム

mossポータルは、jQueryダイアログ(正確にはボックス)でiframeを使用してMVCフォームを呼び出します。次に、jQueryダイアログを閉じるなど、さまざまな目的でjavascriptを使用してmossページにコールバックします。

これは明らかにブラウザの同一生成元ポリシーに失敗します(したがって、JavaScriptが異なるソースからフレーム/ウィンドウを呼び出すことを許可しません)ので、document.domain="myapp.internalserver.local"を設定することでこれを回避しましたMOSSマスターページとアプリフォームページ。これにより、クロスドメインスクリプトをモスとアプリのコンテンツ間で正常に実行できます。

したがって、レポートビューアのWebパーツ(SharePointのデフォルトのパーツに加えて、ASP.NETレポートビューアコンポーネントのみを使用する独自のサードパーティ製のパーツ)を使用してSSRSレポートをミックスに追加するまでは、これはうまく機能しています。

レポートビューアには、htmlをページに返すハンドラが必要なようです。ただし、結果のレポートビューアのコンテンツは、一部のiframeにレンダリングおよびスクリプト化されているように見えますが、それらのiframeにdocument.domainを設定する方法がないため、スクリプトは失敗します。

せいぜい、これはステータスバーに小さな黄色のjavascriptエラーアイコンが表示されることを意味します。さらに悪いことに、動的レンダリングが使用されている場合、「レンダリングレポート」プログレスホイールはアニメーション化するだけで、レポートを配信しません。

誰かがこれを以前に見たことがありますか?もしそうなら、どのようにそれを回避しましたか?

ありがとう、トニー

4

2 に答える 2

0

通常、SSRS Web パーツを SharePoint で動作させるには、Kerberos を有効にする必要があります。同じレポートを (同じセキュリティ コンテキストを使用して) 渡したい場合は、SharePoint アプリ プール アカウントにレポートを取得/実行する権限を付与する必要があります。 . SSRS を「統合」モードでインストールすることも検討できますが、これは非常に難しいプロセスです。SQL サーバーは、SharePoint が完全にインストールされた別のファーム メンバーとして SharePoint をホストする必要があるからです。

于 2009-10-25T02:05:58.790 に答える
0

このブログ投稿に従って、サブフレームを使用してこれを解決しました。

http://www.deepcode.co.uk/2009/11/overcoming-cross-domain-issues-between.html

于 2009-11-16T15:58:17.650 に答える