用管理员身份登陆  
建立一个aspnet应用程序,并且在iis中把它“允许匿名登陆“选项去掉  
此时UserIdentity.Name显示的是Administrator,应该说是对所有文件都有完全访问权了
然后在应用程序中试着向C:盘中随便写入一个什么新的文件,结果访问失败,说没有权限  
结果我给C盘添加了aspnet帐户,然后给他赋予完全访问全,再试,还是失败  
接着在web.config中把impersonate  设置成true,可以写入文件了  
什么原因呢???  
更奇怪的是。如果我不是向一个盘直接写入,而是向盘中的什么文件夹中写入文件,如(C:\a\,是可以成功的,此时impersonate设置成false的  
大家帮忙看看。不知道有没有说清楚?谢谢啦 另外:impersonate到底是什么用的呢???

解决方案 »

  1.   

    如果使用 IIS 身份验证,则提供程序模块使用从 IIS 传入的已验证身份。IIS 使用基本、简要、集成 Windows 身份验证或这些验证的组合来验证身份。可以使用模拟和 NTFS ACL 权限来限制或允许对受保护资源的访问。MSDN里如是说:
    使用 WindowsAuthenticationModule 提供程序的一个重要原因就是实现模拟方案,该方案可以使用 IIS 在将请求传递给 ASP.NET 应用程序之前已经执行的任何身份验证方法。要做到这一点,请将身份验证模式设置为 Windows,并确认 impersonate 元素设置为 true,如下面的示例所示:
    <authentication mode="Windows"/>
    <identity impersonate="true"/>
    请注意,配置 ASP.NET 应用程序对“IIS 目录安全性”设置无效。系统是完全独立的并按顺序应用。除了为 ASP.NET 应用程序选择身份验证模式外,正确地配置 IIS 身份验证也很重要