Как мне ограничить доступ к файлам с определенными расширениями в ASP.NET?

StackOverflow https://stackoverflow.com/questions/1053696

Вопрос

В моем веб-приложении есть файл ADO.NET Entity-Framework *.edmx.

Когда я просматриваю в браузере (когда приложение запущено) файл edmx, он не показывает страницу ошибки, как при просмотре файла * .cs или vb, он открывает edmx и показывает мою схему модели всем пользователям!!!

Как я могу избежать этого?

Это было полезно?

Решение

Вы можете сделать это двумя способами;во-первых, в web.config или, во-вторых, в IIS

<system.web>
    <httpHandlers>
        <add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" />
    </httpHandlers>
</system.web>

Вот ссылка на страницу поддержки Microsoft, на которой подробно описано, как это сделать в web config и IIS.

http://support.microsoft.com/kb/815152

Другие советы

Вы должны сопоставить расширение с ASP.NET 's System.Web.HttpForbiddenHandler класс в web.config.Если вы используете IIS6, прежде чем вы сможете это сделать, вам следовало сопоставить расширение с ASP.NET Обработчиком ISAPI.

Интегрированный режим IIS7:

<system.webServer>
    <handlers>
        <add name="MyForbiddenExtensionHandler" 
             path="*.edmx" 
             verb="*" 
             type="System.Web.HttpForbiddenHandler" 
             preCondition="integratedMode" />
    </handlers>
</system.webServer>

Классический режим IIS7.Что - то вроде:

<system.web>
  <httpHandlers>
     <add path="*.edmx" 
         verb="*" 
         type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </httpHandlers>
</system.web>
<system.webServer>
  <handlers>
     <add name="MyExtensionISAPI" 
         path="*.edmx" 
         verb="*" 
         modules="IsapiModule" 
         scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
  </handlers>
</system.webServer>

IIS6 (после сопоставления обработчика с aspnet_isapi.dll в конфигурации IIS6):

<system.web>
  <httpHandlers>
     <add path="*.edmx" 
         verb="*" 
         type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </httpHandlers>
</system.web>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top