私たちはウェブファームにサイトを提供しています。ファームは暗号化を処理するSSL Accelleratorの後ろにあります。つまり、ユーザーがすべてhttps経由でサイトに接続しても、IISサーバーはすべての着信接続をhttpとして表示します。ScriptManagerにSSL経由でCDNスクリプトを提供させるにはどうすればいいですか
ScriptManagerのEnableCDN = trueプロパティを使用し始めています。 SSL Accelleratorが存在しない開発環境では、CDN上のjsファイルへの参照がhttpsでレンダリングされますが、プロダクション環境ではhttpで安全でなくなり、jsがブロックされる原因となります。 "エラー。
scriptmanagerのすべてのスクリプトリファレンスを手動で更新したり、モジュール経由でHTMLを書き直したりするのには不十分ですが、httpsを通じてスクリプトマニュアに参照を表示させる方法は誰にも分かりますか?
EDIT:
いくつかの反射の見直しを行った後、私はこれが可能であるとは思いません。私は次のようなハッキングを施しましたが、これはプライベートフィールドへのアクセスを含むため、明らかに脆弱です。誰かがより良い方法を見ることができれば、私はそれを聞いてみたい。
var secureConnectionField = ScriptManager.GetType().GetField("_isSecureConnection", BindingFlags.Instance | BindingFlags.NonPublic);
if (secureConnectionField != null)
secureConnectionField.SetValue(ScriptManager, true);
私はあなたが記述する場合のためにそれを試していないが、いくつかの場所では、プロトコルを省略することができますHTML/JSである、とブラウザが同じプロトコルを使用してURLを要求します含まれているページのたとえば、 "//cdn.mydomain.com/myfile.js" – RickNZ
ヒントはありがとうございますが、この場合はレンダリングされたURLを制御しません。フレームワークDLLに登録されています。私は、CDN参照をレンダリングするときにプロトコルを省略するようにスクリプトマネージャーに指示することは遠いとは考えていません。 –
ScriptManagerはコントロールなので、パス生成ロジックをオーバーライドするコントロールアダプターを作成するか、元のコントロールを継承する新しいコントロールを作成し、タグマッピングを使用してアプリで動的に置き換えることができます。 – RickNZ