最近调试一个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 nt authority\network service account).
实际上,这个账号在“application pools“中可以设定。
如果在线程中新建一个线程(_beginthread()),则新线程在“nt authority\network service “帐号下运行。
在iis6中,每个website和虚拟目录可以单独设置 application settings 到单独的application pool。每个 application pool 在单独 w3wp.exe 进程中。
