2017-04-03 14 views
2

私はC#Webformアプリケーションを持っています。フォルダにアクセスできないASP.NETがありません

は、これは、いくつかのpdfファイルを含んでいて内部のレポートフォルダが含まれています。

私のアプリケーションは、オンデマンドでこれらのレポートを表示します。

しかし、私は誰かが、直接URLに

を入力して、これらにアクセスする必要はありません例:www.abc.com/Reports/a.pdf

私はレポートフォルダ内の次のWeb.configを作成:

<configuration> 
<system.web> 
      <authorization> 
       <deny users="?" />     
      </authorization> 
</system.web> 
</configuration> 

まだ、私はpdfファイルに直接アクセスできます。

はまた、ビジネスルールごとに、私は、フォーム認証を使用することはできません。 ASP.NETパイプラインではなく、IISの

答えて

3

<system.web>制御構成。 IISの下で実行している場合、あなたが言及したPDFファイルのような静的なファイル要求に対してASP.NETは呼び出されません。これらの要求を拒否するように

ではなく<system.webServer>を使用しています。このQAを参照してください:<system.webServer>はIIS7以降(Windows Server 2008の)が必要ですHow to make IIS7 stop serving a folder?

<configuration> 
    <system.webServer> 
     <security> 
      <requestFiltering> 
       <hiddenSegments> 
        <add segment="My_Directory" /> 
       </hiddenSegments> 
      </requestFiltering> 
     </security> 
    </system.webServer> 
</configuration> 

注こと。 IIS6(Windows Server 2003またはWindows XP)を実行している場合、これは機能しません。

+0

私はあなたのソリューションをテストあなたのソリューション... –

+0

をテストするが、今、私はアプリの中からファイルにアクセスすることはできません。 –

+0

@SNash静的ファイルに*リダイレクト*することでアプリケーションがファイルを提供する場合、要求をファイルにフィルタすることはできません。ファイルを保護するには、アプリケーションが 'Response.WriteFile'を使って自分のコードでファイルを返すようにする必要があります(' Content-Type'ヘッダも設定することを忘れないでください)。 – Dai

関連する問題