如何限制对ASP.NET中具有特定扩展名的文件的访问?
我的web应用程序中有一个ADO.NET实体框架*.edmx文件 当我在浏览器中(应用程序运行时)浏览到edmx文件时,它不会像浏览到*.cs或vb文件时那样显示错误页面,它会打开edmx并向所有用户显示我的模型方案如何限制对ASP.NET中具有特定扩展名的文件的访问?,asp.net,file-extension,file-access,Asp.net,File Extension,File Access,我的web应用程序中有一个ADO.NET实体框架*.edmx文件 当我在浏览器中(应用程序运行时)浏览到edmx文件时,它不会像浏览到*.cs或vb文件时那样显示错误页面,它会打开edmx并向所有用户显示我的模型方案 如何避免这种情况。您应该将扩展映射到Web.config中的ASP.NET的System.Web.HttpForbiddenHandler类。如果您使用的是IIS6,那么在执行此操作之前,您应该已将扩展映射到ASP.NET ISAPI处理程序 IIS7集成模式: <syste
如何避免这种情况。您应该将扩展映射到
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>
你可以用两种方法来做这件事;首先在web.config中,然后在IIS中
<system.web>
<httpHandlers>
<add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>
type=“System.Web.httpBankedenHandler,System.Web”System.Web在最后抛出了一个错误。应该是type=“System.Web.HttpForbiddenHandler”。将答案更新为System.Web程序集的全名,以使其万无一失。我更喜欢指定程序集的名称,以防止它在包含同名类型时意外从另一个程序集加载。值得注意的是,这只适用于根web.config-Mehrdad的答案适用于子文件夹
<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.web>
<httpHandlers>
<add verb="*" path="*.edmx" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>