いくつかの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
だから私は何が間違っているのですか?誰かが私を正しい方向に向けることができますか?