繁体   English   中英

IIS 7.5,ASP.NET,模拟以及对C:\\ Windows \\ Temp的访问

[英]IIS 7.5, ASP.NET, impersonation, and access to C:\Windows\Temp

简介 :我们的一个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的截图:

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和IIS 7临时目录失败

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM