これは、私が調査してどこにも行き着かないIIS 7.5とASP.NETの問題です。どんな助けでも大歓迎です。
私の質問は、IIS 7.5でASP.NETを使用して、IISまたはオペレーティングシステム、あるいはその両方で、C:\dump
完全な信頼の下で実行している場合と同様に、Webアプリケーションがフォルダーに書き込むことをどのように許可するのですか?アプリケーションプールユーザーの書き込みアクセスを明示的に追加する必要がないのはApplicationPoolIdentity
なぜですか(この場合)。
これだけ私は知っています:
- IIS 7.5では、アプリケーションプールのデフォルトのIDは
ApplicationPoolIdentity
です。 ApplicationPoolIdentity
アプリケーションプールの作成時に作成される「IIS APPPOOL \ AppPoolName」というWindowsユーザーアカウントを表します。AppPoolNameはアプリケーションプールの名前です。- 「IIS APPPOOL \ AppPoolName」ユーザーは、デフォルトで
IIS_IUSRS
グループのメンバーです。 - あなたは完全信頼で実行されている場合は、あなたのWebアプリケーションは、ファイルシステムの多くの地域(除くフォルダが好きに書き込むことができる
C:\Users
、C:\Windows
など)。たとえば、アプリケーションには、などの一部のフォルダへの書き込みアクセス権がありますC:\dump
。 - デフォルトでは、
IIS_IUSRS
グループには読み取りまたは書き込みアクセス権が与えられていませんC:\dump
(少なくとも、Windowsエクスプローラの[セキュリティ]タブから表示されるアクセス権は与えられていません)。 - への書き込みアクセスを拒否すると
IIS_IUSRS
、(期待どおりに)フォルダに書き込もうとするとSecurityExceptionが発生します。
それで、それらすべてを考慮に入れて、「IIS APPPOOL \ AppPoolName」ユーザーに書き込みアクセス権をどのように付与しますか?w3wp.exeプロセスはこのユーザーとして実行されるので、明示的にアクセスできないように見えるフォルダーにこのユーザーが書き込むことを許可するものは何ですか?
完全信頼で実行している場合、書き込み先のすべてのフォルダへのアクセス権をユーザーに付与するのは面倒なので、これはおそらく便宜上行われたと理解しています。このアクセスを制限したい場合は、常に中程度の信頼の下でアプリケーションを実行できます。明示的なファイルシステムアクセスが許可されていないように見えても、オペレーティングシステムやIISがこれらの書き込みを許可する方法について知りたいです。