c# - 允许对 App_Data 的请求

标签 c# asp.net iis web-config

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

Error Summary

HTTP Error 404.8 - Not Found

The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.

最佳答案

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

网络配置

<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

关于c# - 允许对 App_Data 的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515338/

相关文章:

c# - 找不到 PInvoke DLL - BUG?

iis - 如何将 IIS 证书列表导出为详细列表?

asp.net - 我需要 inetpub/wwwroot 中的哪个程序集/DLL 来启动 aspx 页面?

c# - 如何使用 IIS 中托管的服务调试启动异常?

c# - Telerik RadAsyncUpload 404 加载 Telerik.Web.UI.WebResource.axd

c# WCF 捕获基本类型的错误异常

c# - SQLIte SUM日期时间

asp.net - 您无权访问 IIS 配置文件 - Web 应用程序错误

c# - 如何打印特定的物理尺寸

c# - 替换第n个位置的一个字符