document.domainが設定されたSharePointのSSRSレポートビューアー
-
06-07-2019 - |
質問
現在、sharepointを使用して、次のような他のいくつかの内部サーバーからコンテンツを集約する大規模なイントラネットマッシュアップに取り組んでいます:
- moss.myapp.internalserver.local-MOSSポータル
- ssrs.myapp.internalserver.local-SQL Serverレポートサービスレポート
- app.myapp.internalserver.local-カスタムASP.NET MVCフォーム
mosポータルは、jQueryダイアログ(正確にはボックス)のiframeを使用してMVCフォームを呼び出します。jframeは、jQueryダイアログを閉じるなど、javascriptでmossページにコールバックします。
これは明らかにブラウザの同じ生成元ポリシーに失敗するため(したがって、javascriptが異なるソースからフレーム/ウィンドウを呼び出すことはできません)、document.domain =" myapp.internalserverを設定することでこれを回避しました.local" MOSSマスターページとアプリフォームページで、モスとアプリコンテンツ間でクロスドメインスクリプトを正常に実行できます。
それで、レポートビューアーWebパーツを使用してSSRSレポートをミックスに追加するまではうまくいきます(共有ポイントのデフォルトのものと、ASP.NETレポートビューアーコンポーネントを使用する自分のものを含むいくつかのサードパーティのもの) 。
レポートビューアーには、ページにhtmlを返すハンドラーが必要なようです。ただし、結果のレポートビューアーコンテンツはレンダリングされ、一部のiframeにスクリプト化されているように見えますが、それらのiframeにdocument.domainを設定する方法を提供していないため、スクリプトは失敗します。
これは、せいぜいステータスバーに小さな黄色のjavascriptエラーアイコンが表示されることを意味します。さらに悪いことに、ダイナミックレンダリングが使用されている場合、「レンダリングレポート」プログレスホイールはアニメートするだけで、レポートを配信しません。
これを見た人はいますか?もしそうなら、どうやって回避しましたか?
ありがとう、 トニー
解決 2
このブログ投稿に従って、サブフレームを使用してこれを解決しました:
http://www.deepcode .co.uk / 2009/11 / overcoming-cross-domain-issues-between.html
他のヒント
通常、SSRS WebパーツをSharePointで動作させるには、Kerberosを有効にします。同じレポートを(同じセキュリティコンテキストを使用して)渡したい場合は、SharePointアプリプールアカウントに取得/レポートを実行します。 「統合」にSSRSをインストールすることも検討できます。モードですが、SharePointが完全にインストールされた状態で、SQLサーバーが別のファームメンバーとしてSharePointをホストする必要があるため、これは非常に難しいプロセスです。