2012-05-09 24 views
3

ユーザがApp_Dataフォルダにあるファイルをリクエストできるようにしたい。それは、Webアプリケーションのためのデータ・ストレージとして使用されているよう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.

+2

に次の行を追加することによって行うことができ、これは推奨されませんか? – walther

答えて

5

そのことはできませんが、あなたが唯一たconnectionStringを使用して、そこからデータベースにアクセスすることができます保存されたデータのセキュリティ上の理由から、App_Dataフォルダに直接アクセスする:これはエラーです。

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

UPDATE
プログラムにより、我々は、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

+3

この回答はほんの真実です。要求フィルタリングモジュールにそのパスを許可させることができます。 – usr

+0

答えが更新されました。 –

+0

この投稿はずいぶん前に行われましたが、これが私を助けたものです!何時間も苦労して、ホスティング会社がアクセスを制限したり、信頼レベルを追加したり、RadAjaxPanelが問題を引き起こしたために変更しようとしたりしていると考えてしまった...すべてがApp_Dataフォルダにアクセスできなくなってしまった!ありがとう! – AxleWack

1

アプリデータは、アプリケーションファイルのためのものですが、これは、あなたがそれをしたいと思うのはなぜコンフィグ

<system.webServer> 
    <security> 
     <requestFiltering> 
     <hiddenSegments> 
      <remove segment="app_data" /> 
     </hiddenSegments> 
     </requestFiltering> 
    </security> 
    </system.webServer> 
関連する問題