ASP.NETにおけるHTMLページのアクセス検証設定方法

1977 ワード

私と同じようにこのような問題に気づかない友達がたくさんいるかもしれませんが、ASP.ではNETでは、自身が提供するアクセス検証機能(フォーム検証、Passport検証、Windows検証)を使用して、html、画像ファイル、テキストファイルなどの静的ファイルへのアクセス制限は行われません.これらのファイルが検証が必要なファイルフォルダの下に置かれていても、匿名のユーザーはこれらのファイルにアクセスできます.これは、静的ファイルのデフォルトはIISで処理するため、IISはこれらのファイルに対する要求を受信後、ASPに渡さないからである.NET処理なので、ASP.NETの権限検証は機能しません.言い換えれば、これらのファイルはASP.NETの管内.
では、これらのファイルをASP.に配置する方法について説明します.NETの管轄範囲内は?htmlファイルを例にとると、最も簡単な方法はhtmlファイルの接尾辞をaspxに変更することです.この方法は簡単で、実用的ですが、正規ではありません.もう1つの方法は、IISに対してhtmlファイルの処理権をASPに渡すように設定ことである.NET.次のように設定します.
(1)IISを開く、設定するASPを見つける.NETアプリケーション、プロパティダイアログを開きます.
(2)「仮想ディレクトリ」タブに「アプリケーション設定」があり、その中の「設定」ボタンをクリックして、新しいダイアログボックスをポップアップします.
(3)「対応」タブで、「新規」ボタンをクリックし、追加する.htmの接尾辞と処理プログラムとの対応関係は、具体的な設定が参照できる.aspxの設定.
設定後、検証が必要なディレクトリの下にあるhtmlファイルに再びアクセスすると、ログインページに移動してユーザーにログインを要求し、アクセス検証が有効になったことを示します.ただし、登録後にhtmファイルが間違っていることがわかりますので、ここではまだ完了していません.これはASPに対してHttpHandlerの問題にかかわる.NETでは、新しいファイルタイプが有効になっているのに、対応するプロセッサがないことに相当します.だから、webを変える必要があります.configの設定は、新しいプロセッサを登録します.htmlファイルの場合、aspxファイルのプロセッサを使用することができますので、以下のように設定します.


...

...



...


再度アクセスして、今度はコンパイルエラーで、htmファイルに対する相応のコンパイラが不足しているため、更にwebを修正します.config:



...





...


今回このhtmlファイルにアクセスすると、私たちが望んでいるように、認証が必要で、正常に表示することができます.実はこの問題の核心はHttpHandlerに対する理解にある.また、IIS 7では、Integratedモードのアプリケーションプールにアプリケーションを置けば、この問題を解決できると言われています.
特別な要求やHTMLの静的ページを使わなければならない場合は、htmlをaspxに変換するのが簡単だと思います.お客様の導入には、あまり構成する必要はありません.一部のお客様は、導入システムの構成にうんざりしているので、簡単なほうがいいです.