2008年7月2日水曜日

[.NET]ASP.NETの予約フォルダ

システム開発をしていると、作成しているアプリケーション動作設定用のxmlなどが必要な場合があり、それをどこか適当な場所に置きたい場合があります。
Webアプリの場合、アプリケーションフォルダを基準に配備すると、メンテナンスが楽で便利です。
反面、Webシステムであるため、ファイル名さえわかればそのxmlを見られてしまうという危険性があります(逆に見えて便利。という意見もあ。。。)。

で、調べてみると、App_Dataなるフォルダがその目的にマッチします。その他にも予約のフォルダがあります。詳しくはASP.NET Web サイトのレイアウトが参考になります。

で、早速App_Dataにxmlファイルを置いて念のため、ブラウザでアクセス確認。すると、もろみえ。
よくよく調べてみると、ASP.NET2.0以降のようで。。。
仕方がないので、いろいろ試してみると、ASP.NET1.1系で、ファイルまたはフォルダ名に「.config」を含むとWEBからアクセスできなくなるようなのです。
しかし、そういうものだというソースはありません。微妙といえば微妙。困った場合こんな逃げ手を思い出そう。

5 件のコメント :

匿名 さんのコメント...

はじめまして。
参考までに教えて頂きたいのですが、1文目の「動作設定用」と最後の方の「仕方がないので」ってどういう意味ですか?

GENZO さんのコメント...

はじめまして。「動作設定用」は、たとえば何らかの定義ファイル(xmlとか)を置くにふさわしい場所という意味です。文面変ですね。なおしておこ。

「仕方がないので」というのは、ASP.NET1.0系の設定では、予約フォルダになっていないため、ブラウザからそのパスにアクセスすると内容が見えてしまうのでガッカリしたという意味です。

匿名 さんのコメント...

返答ありがとうございます。
2.X系だとApp_Dataフォルダを使えば内容は見られずに済むが、1.X系だと予約フォルダでないフォルダを使わざるを得ないためXMLファイルの内容が見られてしまう。というお話ですか?

IISマネージャで読み取り不可に設定すればいいのではないですか?(そういう話ではなく?)

GENZO さんのコメント...

えぇまぁそういう話です。

今回、環境周りを触ることができない立場にいたので、悩んだ挙句こういう回避策を思いついたしだいです。

匿名 さんのコメント...

なるほどそういうことでしたか(^^;)