web-dev-qa-db-ja.com

Web.configを使用してサブディレクトリへのアクセスをブロックする

ユーティリティファイルを含むASP.NETプロジェクトにサブディレクトリがあります。これらは実行時にコードで必要とされますが、Web上で表示されたくありません。

単一のサブディレクトリとそのすべてのコンテンツへのすべてのユーザーのアクセスをブロックするWeb.configファイルの構文は何ですか?

8
Joel Spolsky

IIS 7には、新しい「リクエストフィルタリング」機能があります。おそらく非表示のセグメント構成を使用したいでしょう:

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

これにより http:// yoursite/bin を使用できなくなります(ただし http:// yoursite/binary は引き続き機能します)

チェックアウト: http://learn.iis.net/page.aspx/143/how-to-use-request-filtering

15
MattB

あなたの問題は、IISが単にファイルを返す場合、ASP.Netは干渉する機会を決して得ないということです。フォームベースの認証を有効にして、かなりいじくり回すことでそれを実現できると思いますが、単にwwwrootフォルダーの外にファイルを移動します。

JR

1
John Rennie

これはうまくいくはずです:

<configuration>
  <location path="FolderName">
    <system.web>
      <authorization>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>
0
John Rasch