Мне нужно ограничить доступ к статическим файлам HTML в нескольких приложениях ASP.NET. Поскольку эти приложения реализуют свои собственные механизмы аутентификации, похоже, мне нужно просто, чтобы эти файлы проходили через конвейер обработки запросов ASP.NET, а не «стандартную» статическую обработку содержимого IIS. Некоторые из приложений являются относительно современными приложениями ASP.NET MVC и используют интегрированный конвейер на IIS 7.5, и похоже, что для них не очень важно делать то, что мне нужно. Но другие - это устаревшие веб-сайты ASP.NET, работающие в режиме классического конвейера (IIS 7.5), и на данный момент невозможно поместить их в интегрированный конвейер по определенным причинам.Как ограничить доступ к статическим файлам в IIS 7.5 Классический режим
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
Так что я делаю неправильно? Может ли кто-нибудь указать мне на правильный путь?
Несомненно, все наши приложения используют свои собственные пулы приложений - по одному на приложение, поэтому они запускаются в разных процессах. Проблема в том, что приложения содержат некоторые статические файлы (страницы справки), а неавторизованный пользователь может их видеть, если они набирают прямой URL. И моя задача - сделать приложение показателем страницы входа в таком случае. –