Asp.net ApplicationPool标识、匿名标识、ProcessModel标识、模拟标识和线程标识之间的区别

Asp.net ApplicationPool标识、匿名标识、ProcessModel标识、模拟标识和线程标识之间的区别,asp.net,security,iis,identity,Asp.net,Security,Iis,Identity,我对ASP.NET和IIS中的各种不同标识感到有点困惑。能否告诉我应用程序池标识、匿名标识、ProcessModel标识、模拟标识和线程标识之间的确切区别?请告诉我asp.net何时使用哪个标识?IIS是可以承载asp.net以外的主动/被动内容(例如,经典asp、php、静态文件等)的web服务器。应用程序池标识决定从IIS角度运行请求的用户。因此,当提供静态文件(html/图像)时,该用户将用于从磁盘访问文件。很多时候,IIS会将请求的实际执行移交给不同的处理程序(例如,php cgi或AS

我对ASP.NET和IIS中的各种不同标识感到有点困惑。能否告诉我应用程序池标识、匿名标识、ProcessModel标识、模拟标识和线程标识之间的确切区别?请告诉我asp.net何时使用哪个标识?

IIS是可以承载asp.net以外的主动/被动内容(例如,经典asp、php、静态文件等)的web服务器。应用程序池标识决定从IIS角度运行请求的用户。因此,当提供静态文件(html/图像)时,该用户将用于从磁盘访问文件。很多时候,IIS会将请求的实际执行移交给不同的处理程序(例如,php cgi或ASP.NET运行时等)。该运行时可能使用不同的标识来运行请求。在windows身份验证的情况下,IIS会将windows用户令牌传递给特定的处理程序,处理程序可能会模拟当前请求以该身份验证用户的身份运行。经典ASP就是这样一个系统。在这些情况下,当用户未经身份验证(即匿名)时,将使用匿名用户的身份


对于ASP.NET,默认配置将在应用程序池的标识下运行请求。但是,使用配置,您可以指示ASP.NET运行时模拟当前用户的身份。您还可以通过这样的配置来配置以模拟特定标识下的请求-通常在应用程序代码需要具有特定访问权限(如访问文件共享、网络资源等)的情况下完成此操作。

流程模型标识仅适用于IIS 5。*。在IIS 6+中,其等价物是应用程序池标识

创建工作进程时,进程模型/应用程序池标识将用作进程标识

当允许匿名访问时,匿名标识将用作处理工作进程内传入请求的所有线程的线程标识。其他线程的标识取决于它们的创建方式,并且对开发人员/最终用户是透明的

当使用其他身份验证方法(如Windows身份验证)时,工作线程标识将使用经过身份验证的用户标识(每个传入的请求可能来自经过身份验证的用户,然后该用户的标识将用于处理该请求的线程)

模拟要复杂得多,如中所述


它改变了安全上下文,这不是一个容易理解的Windows概念,您可以从好书或实验中学到。

谢谢,但我仍然不清楚asp.net在启用或禁用模拟、启用或禁用匿名访问时使用的身份,启用或禁用集成安全性时,启用或禁用processmodel元素时。ASP.NET中应用程序域标识的角色。