2012-05-29 15 views
5

コンテンツフォルダには、権限のないユーザーがダウンロードできないようにするファイルがあります。 ...アドレスバーにContent/{filename}と入力するだけで、ユーザーがファイルにアクセスするのを防ぐにはどうすればよいですか?MVCのフォルダを保護する

答えて

3

いくつかの可能性があります。別の可能性は誰もが(例えばApp_Dataフォルダなど)にアクセスして、コントローラのアクションを持つことができ、フォルダ内のこれらのファイルを置くことです

<location path="Content"> 
    <system.web> 
     <authorization> 
      <deny users="?" /> 
     </authorization> 
    </system.web> 
</location> 

:最初のものは、あなたのweb.configファイル内<location>タグを使用してに構成されてい[Authorize]属性で装飾されるファイルを提供します。

+0

のように直接リンクすることで、ファイルにアクセスすることができます。設定? – user517406

+0

''要素の内側で、 ''の外側にあります。それは根本にあります。 –

+1

ありがとうございました。すぐに動作しないようにしました。ない :) – user517406

0

まあ一つの方法は、IISのコンテキスト外にそれを持っているので、代わりにC:\temp\filesのようなものに変更し、それを

C:\inetpub\wwwrootの下でそれらを持ちます。

には、ドキュメント名に関連付けられたGUIDがあり、GUIDを使用してファイルへのリンクを表示します。

あなたのコントローラのアクションでは、GUIDを受け入れるだけで、ファイル名を取得し、あなたの応答でファイルを提供します。

1

私のためには機能しません。

<configuration> 
    <appSettings> 
    ... 
    </appSettings> 
    <system.web> 
    ... 
    </system.web> 
    <system.webServer> 
    ... 
    </system.webServer> 
    <location path="Content"> 
     <system.web> 
      <authorization> 
       <deny users="?" /> 
      </authorization> 
     </system.web> 
    </location> 
</configuration> 

私は私のMVC 4.0アプリケーション、ログインとログアウトを実行し、任意のアプリページにアクセスすることはできませんが、それでもこれはウェブに位置するであろう

http://localhost:80966/Content/Files/home.jpg 
関連する問題