次のようにHeadセクションにJSスクリプトファイルを含むRazorページ(Sample.cshtmlと呼びます)を備えたASP.NETMVCアプリがあります。
<script src="https://www.example.net/Errors/utils.Version4.js" type="text/javascript"></script>
(無実を保護するために正確な名前が変更されました)。アプリケーションは共有ホスティングサイトにあり、サイトのコントロールパネルを介して、[エラー]サブディレクトリの[IISアクセス許可]を[SSLの匿名アクセスを許可しSSLの読み取りアクセス許可を有効にする]に設定しましたが、[匿名アクセスの許可]と[読み取りアクセス許可の有効化]を無効にしました。
問題は次のとおりです。アプリにログオンして認証し(Forms Authenticationを使用)、コントローラーがSample.cshtmlをロードすると、jsファイルを読み取ることができません。ソースの表示を実行してScriptタグのリンクをクリックすると、リソースを読み取る権限がないことを示すエラーHTML、エラーコード403.2が表示されます。ただし、アドレスバーにsrc URLを入力すると、JSファイルを正常にダウンロードして、ブラウザでテキストを表示できます。
アドレスバーを使用しているのに読み取り権限がないのに、ページスクリプトインクルードからsrcが呼び出されたときに読み取り権限がないのはなぜですか?少し実験しましたが、[読み取りアクセス許可を有効にする]をオンにすると(SSLと暗号化されていないhttpの両方で読み取りアクセス許可が有効になるように)、問題は解決します。
私は識別できるほど洗練されていないという論理的な答えがあると確信していますが、これを修正する(そして学ぶことを切望している)ので、どんな情報でもありがたく受け取られるでしょう。
ありがとう。