最近调试一个ISAPI扩展,需要知道进程和线程的身份。学到的知识。
MSDN 原文: IIS Application Identities。
ISAPI 扩展 (包括 ASP, ASP.NET,因为 asp.dll 和 aspnet_isapi.dll 都是ISAPI扩展):
进程(Process,w3wp.exe)的身份:
1. 在匿名访问方式,使用 IUSR_ computer_name 账号。
2. 非匿名方式,使用认证的客户的身份。
线程(Thread)的身份:
1. Win32 RevertToSelf 未被调用,和Process身份一样。
2. Win32 RevertToSelf 被调用, 在IIS6 worker process isolation mode模式下, 线程伪装成“ NT AUTHORITY/NETWORK SERVICE “帐号。(thread impersonates the
实际上,这个账号在“Application Pools“中可以设定。
如果在线程中新建一个线程( _beginthread()),则新线程在“ NT AUTHORITY/NETWORK SERVICE “帐号下运行。
在IIS6中,每个website和虚拟目录可以单独设置 Application settings 到单独的Application Pool。每个 Application Pool 在单独 w3wp.exe 进程中。
MSDN 原文: IIS Application Identities。
ISAPI 扩展 (包括 ASP, ASP.NET,因为 asp.dll 和 aspnet_isapi.dll 都是ISAPI扩展):
进程(Process,w3wp.exe)的身份:
1. 在匿名访问方式,使用 IUSR_ computer_name 账号。
2. 非匿名方式,使用认证的客户的身份。
线程(Thread)的身份:
1. Win32 RevertToSelf 未被调用,和Process身份一样。
2. Win32 RevertToSelf 被调用, 在IIS6 worker process isolation mode模式下, 线程伪装成“ NT AUTHORITY/NETWORK SERVICE “帐号。(thread impersonates the
NT AUTHORITY/NETWORK SERVICE account).
实际上,这个账号在“Application Pools“中可以设定。
如果在线程中新建一个线程( _beginthread()),则新线程在“ NT AUTHORITY/NETWORK SERVICE “帐号下运行。
在IIS6中,每个website和虚拟目录可以单独设置 Application settings 到单独的Application Pool。每个 Application Pool 在单独 w3wp.exe 进程中。
本文围绕ISAPI扩展展开,介绍调试时需了解的进程和线程身份知识。在ISAPI扩展里,进程身份在匿名访问时用IUSR_computer_name账号,非匿名用认证客户身份;线程身份分不同情况,新建线程在特定账号下运行,且IIS6中网站和虚拟目录可单独设置应用程序池。
183

被折叠的 条评论
为什么被折叠?



