【问题标题】:Allow Requests to App_Data允许对 App_Data 的请求
【发布时间】:2012-05-09 11:41:36
【问题描述】:

我想允许用户请求位于 App_Data 文件夹中的文件。这是错误:

错误总结

HTTP 错误 404.8 - 未找到

请求过滤模块被配置为拒绝 URL 中包含 hiddenSegment 部分的路径。

【问题讨论】:

  • 你为什么要这样做?

标签: c# asp.net iis web-config


【解决方案1】:

不能直接访问App_Data文件夹,因为它用作Web应用程序的数据存储,出于存储数据的安全原因,您只能使用连接字符串从中访问数据库。

web.config

<connectionStrings>
    <add name="AddressBookConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

检查这个http://www.codeproject.com/Articles/31557/A-Beginner-s-Guide-to-ASP-NET-Application-Folders#h

更新
以编程方式,我们可以访问 Web 应用程序中的任何文件并将其写入响应:

public class FileAccessHandler:IHttpHandler
{
    public FileAccessHandler()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public bool IsReusable
    {
        get { return false; }
    }

    public void ProcessRequest(HttpContext context)
    {
        String FileName = Path.GetFileName(context.Request.PhysicalPath);
        String AssetName = HttpContext.Current.Request.MapPath(Path.Combine(HttpContext.Current.Request.ApplicationPath, "App_Data/" + FileName));

        if (File.Exists(AssetName))
        {
            context.Response.ContentType = "image/jpeg";
            context.Response.BinaryWrite(File.ReadAllBytes(AssetName));
            context.Response.End();
        }
    }
}


Download: App_Data access sample

【讨论】:

  • 这个答案只对了一半:您可以让请求过滤模块允许该路径。
  • 虽然这篇文章是很久以前写的,但这篇文章对我有帮助!经过数小时的挣扎,认为是托管公司限制访问或不得不添加信任级别或尝试进行更改,因为 RadAjaxPanel 引起了问题......这一切都归结为无法访问 App_Data 文件夹!谢谢!
【解决方案2】:

不建议这样做,因为应用程序数据用于应用程序文件,但可以通过在配置中添加以下行来完成

  <system.webServer>
    <security>
      <requestFiltering>
        <hiddenSegments>
          <remove segment="app_data" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2011-10-08
    • 2017-01-04
    • 2017-03-15
    • 1970-01-01
    • 2015-06-25
    • 2013-11-22
    • 2015-03-09
    • 2017-07-31
    相关资源
    最近更新 更多