2009-06-27 106 views
8

我在我的web應用程序中有一個ADO.NET Entity-Framework * .edmx文件。如何限制對ASP.NET中具有特定擴展名的文件的訪問?

當我瀏覽器(當應用程序運行時)瀏覽到edmx文件時,它不會顯示錯誤頁面,例如瀏覽到* .cs或vb文件時,它會打開edmx並顯示我的模型計劃給所有的用戶!

我該如何避免這種情況。

回答

8

你可以這樣做兩種方式;首先在web.config或其次在IIS

​​

下面是一個微軟支持頁面,詳細說明如何做到這一點的web配置和IIS的鏈接。

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

9

您應該將擴展名映射到web.config的ASP.NET的System.Web.HttpForbiddenHandler類。如果您使用的是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(在IIS6配置處理程序映射到aspnet_isapi.dll後):

<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> 
+0

類型= 「System.Web.HttpForbiddenHandler,System.Web程序」 末 的System.Web,引發了錯誤。應該只是type =「System.Web.HttpForbiddenHandler」。 – Shimmy 2009-06-27 22:30:50

+0

用System.Web程序集的全名更新了答案,使其十分簡單。我更喜歡指定程序集的名稱,以防止它從另一個程序集中意外加載,如果它包含具有相同名稱的類型的話。 – 2009-06-27 22:52:23

相關問題