0

IIS 6 に ASP.Net アプリケーションがあります。アクセスできないサーバーでホストされています。ヘルプ フォルダーにある静的ファイル (*.html、*.htm) を保護する必要があります (それらには認証が必要なため、html ファイルと htm ファイルを aspx ファイルとして扱う必要があります)。

ここで記事を見つけました - http://forums.asp.net/t/1184547.aspx (フォーム認証と HTML ページに関する IIS の問題)。次に、ホスティング会社に手紙を書き、IIS 6 用の html および htm ファイル マッピングを作成しました。次に、上記の記事に書かれているように web.config ファイルを構成しました。結果として、https://www.mypage.com/help/static.htmlのようなリンクは保護されます (ユーザーはログイン ページにリダイレクトされます)。

ただし、https://mypage.com/help/static.htmlなどのリンクは保護されていません (ユーザーはログイン ページにリダイレクトされません)。Web 上で同様の問題は見つかりませんでした。

1) この問題の原因は何だろうか? IIS 6 構成が間違っているのでしょうか、それとも web.config を変更する必要がありますか?

2) ホスティング サービスにメールを送信したところ、URLRewriting について読むように勧められました。これは UrlRewriting に関するものだとは思いませんか、そうですか? 今のところ URL 書き換えは使用していません。

4

2 に答える 2

0

ホストがホストヘッダーを介してサイトを解決している可能性があり、mypage.comのURLが解決されても、より長いURLを明示的に検索します。後者は保護された参照としてキャッチされないため、チェックをバイパスします。ただし、できることは、要求されたインバウンドURLをチェックするコードのチャンクを作成することです。「短い」バージョンが表示された場合は、URLをフルネームにリダイレクトして、適切な認証/ルーティングを取得する必要があります。 '欲しいです。web.configファイルで基本的な書き換えを構成することもできます。

この場所には、トピックのかなりまともな要約があります。web.configの例が、状況に応じて試すのに最適な最初の選択肢であることがわかる場合があります。

于 2012-08-31T16:21:39.963 に答える
0

IIS6はIIS7とは動作が異なります。IIS6では、web.configファイルはASP.NETの動作のみを制御し、IISは制御しませんが、IIS7では、<system.webServer>IISの構成方法を構成する要素があります。

次に、IIS7(デフォルト)は「マネージドパイプライン」を呼び出します。これにより、ASP.NETは着信HTTP要求のあらゆる側面を効果的に変更できます。これは、ASP.NET URLルーティングの仕組みです(ルーティングHTTPモジュールはすべての着信HTTP要求を検査するため、既存のリソースと一致しない場合は、ASP.NETアプリケーションがそれを処理します)。

あなたの実際の問題に関して、私たちはより多くの詳細を必要としています。ホストに2つの仮想Webサイトが作成されているようです(1つは「www.mysite.com」を処理し、もう1つは「mysite.com」を処理します。保護は「www」サイトにのみ適用されます)。別の説明は、「mysite.com」(またはその他のホストヘッダー)も受け入れるのではなく、ホストヘッダーが「www.mysite.com」である場合にのみファイルチェックを保護するルールです。

URL書き換えは、ここでは役に立ちません。あなたのホストがそれを提案した場合、彼らは彼らが何をしているのかわからないかもしれないと私に告げます(また、IIS6はサードパーティの拡張子なしでURL書き換えをサポートしていません)。

于 2012-08-31T16:22:27.207 に答える