asp.net - IIS 7.5,ASP.NET,模拟和对C :\Windows\Temp的访问

标签 asp.net iis-7 windows-7 permissions impersonation

简介:我们的Web应用程序之一需要对C:\Windows\Temp的写权限。但是,无论我减弱NTFS权限多少,procmon都会显示ACCESS DENIED

背景(可能与该问题无关或无关):我们正在使用OLEDB访问MS Access数据库(位于C:\Windows\Temp外部)。不幸的是,此OLEDB驱动程序要求对用户配置文件的TEMP目录(在IIS 7.5下运行时碰巧为C:\Windows\Temp)具有写访问权,否则将引发可怕的“未指定错误” OleDbException。有关详细信息,请参见KB 926939。我按照知识库文章中的步骤进行操作,但没有帮助。

细节:

这是icacls C:\Windows\Temp的输出。出于调试目的,我授予了Everyone的完全权限。

C:\Windows\Temp NT AUTHORITY\SYSTEM:(OI)(CI)(F)
                CREATOR OWNER:(OI)(CI)(IO)(F)
                BUILTIN\IIS_IUSRS:(OI)(CI)(S,RD)
                BUILTIN\Users:(CI)(S,WD,AD,X)
                BUILTIN\Administrators:(OI)(CI)(F)
                Everyone:(OI)(CI)(F)

但是,这是procmon的屏幕截图:
Desired Access: Generic Read/Write, Delete
Disposition:    Create
Options:        Synchronous IO Non-Alert, Non-Directory File, Random Access, Delete On Close, Open No Recall
Attributes:     NT
ShareMode:      None
AllocationSize: 0
Impersonating:  MYDOMAIN\myuser

PS:以MYDOMAIN\myuser身份登录时,我可以使用Windows资源管理器以C:\Windows\Temp创建文件,而不会出现任何问题。

编辑:web.config的相关部分:
 <authentication mode="Windows" />
 <identity impersonate="true" />
 <authorization>
   <deny users="?" />
   <allow users="*" />
 </authorization>

身份验证似乎可行,即System.Security.Principal.WindowsIdentity.GetCurrent().Name(显示在我的自定义错误页面上)返回MYDOMAIN\myuser

最佳答案

您是否尝试过执行以下步骤:
loadUserProfile and IIS 7 temporary directory failures

关于asp.net - IIS 7.5,ASP.NET,模拟和对C :\Windows\Temp的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2989743/

相关文章:

c# - Page.User.Identity.Name 在子域的页面上为空

batch-file - 获取文件大小的命令

android - 如何在下载并构建了 tess-two 的 Windows 7 上训练 Tesseract?

javascript - Ajax 调用工作很慢。可以让它更快吗?

asp.net - TextChanged 事件函数不起作用

javascript - 循环 Angular API 调用

asp.net-mvc - ASP.NET MVC 5 Web 应用程序性能下降

c# - 这是找到最短路径的最佳算法(时间复杂度)

asp.net-mvc-4 - 使用 IIS8 的 MVC 应用程序中的堆损坏

java - 在 Win7 上以 SYSTEM 身份运行时写入临时目录失败