我们都知道在asp.net里可以impersonating,最常用就是在IIS里设置对anonymous访问的impersonating.在这里我只是想说,在设置了anonymous访问的impersonating后,在你的程序里并不是所有的地方都是用这个帐户去进行权限访问的。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
举个例子,我需要在程序的根目录下创建并写一个日志文件(比如c:\MyDotNet\MyApp1\myapp1.log),而anonymous impersonating我设置为localhost\testaccount。于是在global.aspx.cs中









你认为asp.net会用哪一个帐户去创建myapp1.log文件呢?是localhost\testaccount吗?不是的,系统用的是你的application隶属的那个application pool的帐户,默认的default applicatoin pool的帐户是network service.
所以,如果要让上面的程序段运行,你要让network service帐户对c:\MyDotNet\MyApp1\有写权限。
对所有在Page中运行的代码,系统将使用localhost\testaccount帐户。(global.aspx.cs不属于Page)