2011-07-18 26 views
2

ASP.NETとIISのさまざまなIDについてちょっと混乱します。アプリケーションプールアイデンティティ、匿名アイデンティティ、プロセスモデルアイデンティティ、偽装アイデンティティとスレッドアイデンティティの正確な違いを教えてください。 asp.netがどのIDを使用するか教えてください。ApplicationPool ID、匿名ID、ProcessModel ID、偽装ID、およびスレッドIDの相違

答えて

3

IISは、ASP.NET以外のアクティブ/パッシブコンテンツ(たとえば、従来のASP、PHP、静的ファイルなど)をホストできるWebサーバーです。アプリケーションプールIDは、IISの観点から要求が実行されるユーザーを決定します。したがって、静的ファイル(html/image)が提供されると、このユーザーはディスクからファイルにアクセスするために使用されます。多くの場合、IISは要求の実際の実行を別のハンドラ(たとえばphp-cgiやASP.NETランタイムなど)に渡します。その実行時は、要求を実行するために異なるIDを使用することがあります。 Windows認証の場合、IISはWindowsのユーザートークンを特定のハンドラに渡し、ハンドラはその認証されたユーザーのIDで実行される現在の要求を偽装することがあります。従来のASPはそのようなシステムの1つでした。このような場合、ユーザーが認証されていない(つまり匿名の)場合、匿名ユーザーのIDが使用されます。

ASP.NETの場合、既定の構成では、アプリケーションプールのIDで要求が実行されます。ただし、構成を使用すると、ASP.NET実行時に現在のユーザーの身元を偽装するよう指示できます。また、このようなとして構成することにより、特定のIDで要求を偽装するように設定することができます - アプリケーション・コードは、ファイル共有へのアクセスなどの特定のアクセス権を持っている必要がありますどこの典型的なこれが行われ、ネットワークリソースをなど

+0

おかげで、しかし、私はまだ偽装を有効または無効にする場合の匿名アクセスを有効または無効にする場合の統合セキュリティを有効にするか無効にするときのprocessModel要素を有効または無効にする場合のアイデンティティasp.netは、、使用する程度は不明です。 ASP.NETにおけるアプリケーションドメインIDの役割。 – user571646

2

プロセスモデルのアイデンティティが何かは5 IISあります。*のみ。 IIS 6以降では、同等のアプリケーションプールIDです。

ワーカープロセスが作成されると、プロセスモデル/アプリケーションプールIDがプロセスIDとして使用されます。

匿名アクセスが許可されている場合は、匿名のアイデンティティは、ワーカープロセス内部の着信要求を処理するすべてのスレッドのスレッドIDとして使用されています。他のスレッドのアイデンティティは、それらがどのように作成されるかに依存し、開発者/エンドユーザには透過的です。

Windows認証などの他の認証方法が使用されている場合、ワーカースレッドIDは認証されたユーザーIDを使用します(各受信要求は認証ユーザーからのものである可能性があり、要求を処理するスレッドに対してこのユーザーのIDが使用されます)。

http://msdn.microsoft.com/en-us/library/aa376391(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/ff647404.aspx

に記載されているように

偽装は、それはあなたが学ぶことのいずれか分かりやすいのWindowsの概念ではないセキュリティコンテキストを、変更、はるかに複雑です素晴らしい本や実験から。