【问题标题】:What Are the .NET Platform File Extensions?什么是 .NET 平台文件扩展名?
【发布时间】:2011-07-24 18:03:58
【问题描述】:

我已经在我的 Linux 服务器上安装了mono 平台,并且能够在 nginx HTTP 服务器后面运行它。该系统运行良好,并且完美地服务于 .NET 特定的动态文件。

但是,我只想(并且仅)将所需的文件(通过扩展名)传递给 mono,并让 nginx 处理所有其他文件,包括静态文件和在 .NET 平台上正常情况下不应提供的文件。我已经配置了我的 nginx,如下所示 - 因为我对 .NET 平台没有足够的知识 - 我不确定哪些扩展 should 必须传递给 mono 以及哪些扩展必须被禁止。

这里是我的nginx配置文件的相关部分:

# Do not pass .NET forbidden extensions to anywhere.
# Theese are the extensions that should not be served to the clients
location ~ \.(config|dbml|dll|master|other|forbidden|exts)$ {
    deny all;
}

这里是将需要(仅需要)文件传递给单声道的配置部分:

# Theese are the extensions which *must* be handled by mono
location ~ \.(aspx|cs|other|exts|that|must|be|handled|by|mono)$ {
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include         fastcgi.conf;
    fastcgi_index   default.aspx;
}

# Other static files will be handled by nginx.

我从 Wikipedia entry 中找到了一些 .NET 特定的文件扩展名,但它们还远未完成。

所以我的问题有三个子问题:

  • .NET 平台特定的文件扩展名是什么?
  • 其中哪些必须由 .NET 引擎处理?
  • 其中哪些是保密的,不得提供给客户?

这将是一个共享托管环境,因此任何缺少的扩展都可能对用户造成不良影响(例如,泄露的用户密码或应用程序设置)。

【问题讨论】:

    标签: .net asp.net mono nginx file-extension


    【解决方案1】:

    可能最容易查看的位置是主 web.config 文件,它是声明 ASP.NET 基本设置的位置。这包括<httpHandlers>,例如:

    <httpHandlers>
      <add verb="*" path="*.rules" type="System.Web.HttpForbiddenHandler" validate="true"/>
      <add verb="*" path="*.xoml" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
      <add path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/>
      <add path="trace.axd" verb="*" type="System.Web.Handlers.TraceHandler" validate="True"/>
      <add path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" validate="True"/>
      <add path="*.axd" verb="*" type="System.Web.HttpNotFoundHandler" validate="True"/>
      <add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True"/>
      <add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True"/>
      <add path="*.asmx" verb="*" type="System.Web.Services.Protocols.WebServiceHandlerFactory, System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="False"/>
      <add path="*.rem" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/>
      <add path="*.soap" verb="*" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="False"/>
      <add path="*.asax" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.ascx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.master" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.skin" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.browser" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.sitemap" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.dll.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/>
      <add path="*.exe.config" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="True"/>
      <add path="*.config" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.cs" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.csproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.vb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.vbproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.webinfo" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.licx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.resx" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.resources" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.mdb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.vjsproj" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.java" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.jsl" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.ldb" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.ad" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.dd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.ldd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.sd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.exclude" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*.refresh" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
      <add path="*" verb="GET,HEAD,POST" type="System.Web.DefaultHttpHandler" validate="True"/>
      <add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True"/>
    </httpHandlers>
    

    【讨论】:

    • 所以System.Web.HttpForbiddenHandler 类型不能提供,对吗?
    猜你喜欢
    • 2015-03-04
    • 2010-09-08
    • 2011-08-23
    • 1970-01-01
    • 2019-03-26
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    相关资源
    最近更新 更多