1つは、実行しているWindowsのバージョンによって異なります。次に、3つの異なるサーバーについて質問しています。おそらくそれが混乱を招いているのでしょう。
開発サーバー
まず、最も簡単なのはカッシーニです。このサーバーは、起動元のVisual Studioインスタンスと同じアカウントで、同じ特権で実行されます。通常、これは自分のWindowsアカウントです。
IIS Expressは、IISとまったく同じコードベースを使用しますが、Visual Studio(またはWeb Matrix)を起動したのと同じアカウントである独自のWindowsアカウントでも実行されます。
IIS 6.0
さて、IISは適切です。ここには多くのアカウントがあります。まず、Windows Server2003マシンにまだある「古い」IIS6.0は、次のアカウントを使用します。
- ネットワークサービス(IIS 6.0以降のアプリケーションプールのデフォルトおよび推奨ワーカープロセスID)
- ローカルサービス(かなり制限されたアクセス)
- ローカルシステム(「IIS5.0分離モード」で実行しているときにワーカープロセスに使用され、管理者のメンバーであり、フルアクセス権があります)
- IIS_WPG(ワーカープロセスグループの略で、アカウントではなくグループです。最小限の必要なアクセス許可を取得するには、ワーカープロセスIDがこのグループのメンバーである必要があります)
- IUSR_ComputerName(ワーカープロセスには使用されませんが、匿名の訪問者をWindowsアカウントにマップするために使用されます)
- IWAM_ {ComputerName}(IIS 5.0分離モードの場合、最近は通常、分離にアプリケーションプールを使用します)
- ASPNET( IIS 5.0分離モードの場合も、 ASP.NETアカウントのように見えますが、ほとんどの場合、そうではありません)
(このリストは、TechNetの記事IISおよび組み込みアカウント(IIS 6.0)に基づいています。)
IIS7以降
IIS 7の場合、上記のリストの一部は関連性がなくなり、一部は置き換えられます。これらのアカウントはWindowsに組み込まれているため、どこでも同じSSIDを持っており、時々便利です。
サーバーをWindows2003からWindows2008にアップグレードした場合、またはIIS 6.0互換機能または古いIISコンポーネントをインストールした場合、1台のマシンに古いアカウントと新しいアカウントがある可能性があります。
- IUSR(* IUSR_ {ComputerName}を置き換えるため、デフォルトで匿名ユーザーをマップするために使用されます*)
- IIS_IUSRS(* IIS_WPGグループを置き換えるため、アカウントではなくグループ*)
(これは、IIS 7の組み込みユーザーおよびグループアカウントについての記事に基づいています。)
AppPool ID(IIS 7.0以降)
このリストはほぼ完成しましたが、特別なタイプのアカウント、つまり「動的な」AppPoolIDを理解する必要があります。これらは、他のアカウントのようにマシン上の実際のアカウントではありません。たとえば、Windowsでユーザーとしてリストされているアカウントを見つけることができません。ただし、ApplicationPoolIdentityオプションを選択した場合、これらはアプリケーションプール用にオンザフライで作成される仮想アカウントです。
このようなアカウントにファイルまたはフォルダーへのアクセス権限を付与する必要がある場合でも、IIS AppPool {DefaultAppPool}と入力してアカウントを検索できます({DefaultAppPool}を作成したアプリケーションプールの名前に置き換えます)。
(これについて詳しくは、iis.netのアプリケーションプールIDを参照してください。)
.NET 4.0をインストールすると、IISは新しいアプリケーションプールを追加して、既存の.NET2.0Webアプリケーションと一緒に新しい.NET4.0Webアプリケーションを実行できるようにします。インストーラーは、このアプリケーションプールにASP.NET v4.0という名前を付け、オプションApplicationPoolIdentityを使用します。したがって、この新しいアプリケーションプールを使用するかどうかに関係なく、動的アカウントが作成されます。