2

いくつかのASP.NETアプリケーションで静的HTMLファイルへのアクセスを制限する必要があります。これらのアプリケーションは独自の認証メカニズムを実装しているため、「標準の」IIS静的コンテンツ処理ではなく、これらのファイルをASP.NET要求処理パイプラインに通す必要があるようです。一部のアプリケーションは比較的最新のASP.NETMVCアプリケーションであり、IIS 7.5で統合パイプラインを使用しており、必要なことを実行するのは大したことではないようです。ただし、その他はクラシックパイプラインモード(IIS 7.5)で動作するレガシーASP.NET Webサイトであり、現時点では、特定の理由で統合パイプラインに移動することはできません。

UPD:問題は、アプリケーションにいくつかの静的ファイル(ヘルプページ)が含まれており、許可されていないユーザーが直接URLを入力するとそれらを表示できることです。そして、私の仕事は、そのような場合にアプリケーションにログインページを表示させることです。

Web.configにハンドラーを追加します。

<add name="StaticHTMLHandler" path="*.htm*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />

この例外が発生しました:

[HttpException (0x80004005): Failed to Execute URL]
    System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(String url, String method, String childHeaders, Boolean sendHeaders, Boolean addUserIndo, IntPtr token, String name, String authType, Byte[] entity, AsyncCallback cb, Object state) +4136452
    System.Web.HttpResponse.BeginExecuteUrlForEntireResponse(String pathOverride, NameValueCollection requestHeaders, AsyncCallback cb, Object state) +653
    System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) +279
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +12551795
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288

だから私は何が間違っているのですか?誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

0

私はあなたの方法を試したことがありませんが、いくつかのFW 1.1、クラシックaspも持っています。と最新のWebアプリが私のWebサーバーに混在しています。私がやっていることは、フレームワークごとに個別のアプリプールを作成することです。作成した1.1クラシックモードアプリプールで1.1を実行し、別のアプリプールである統合fw4.0で最新アプリを実行します。古典的なaspのものは、この質問の範囲外です。各アプリプールは独自のプロセスであるため、より多くのアプリプールを使用することに実際の欠点はありません。たとえば、アプリケーションごとに1つのアプリプールは完全に許容できるセキュリティポリシーです。

于 2013-02-18T23:11:43.903 に答える
0

したがって、最終的に、従来のパイプラインモードで静的ファイルに認証をもたらすための実用的な方法は見つかりませんでした。最後に、古いレガシープラットフォームを更新し、統合パイプラインモードで動作させることを決定しました。

于 2019-11-19T02:52:47.307 に答える