![](/img/trans.png)
[英]why does windows authentication / impersonation fail on asp.net application with iis 7.5 / windows 7 /
[英]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的截图:
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.