2009-06-27 5 views
8

私はWebアプリケーションにADO.NET Entity-Framework * .edmxファイルを持っています。ASP.NETで特定の拡張子を持つファイルへのアクセスを制限するにはどうすればよいですか?

edmxファイルにブラウザを(アプリケーションが実行されている)参照すると、* .csまたはvbファイルを参照するときのようにエラーページが表示されず、edmxが開き、自分のモデルが表示されますすべてのユーザーに計画!

どうすればそれを避けることができますか?

答えて

8

あなたは、この2つの方法で行うことができます。まず、web.configファイル内または第二IIS

で ​​

ここではWeb構成とIISでそれを行う方法を詳しく説明し、マイクロソフトのサポートページへのリンクです。

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

+2

これはルートweb.configでしか動作しないことに注目してください - Mehrdadの答えはサブフォルダでも機能します –

9

拡張子をクラスの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(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

+0

System.Webアセンブリのフルネームで答えを更新しました。同じ名前の型が含まれている場合、アセンブリの名前を指定して別のアセンブリから誤ってロードされないようにすることをお勧めします。 –

関連する問題