Resumen: una de nuestras aplicaciones web requiere acceso de escritura a C:\Windows\Temp
. Sin embargo, no importa cuánto debilite el permiso NTFS, procmon muestra ACCESS DENIED
.IIS 7.5, ASP.NET, suplantación y acceso a C: Windows Temp
Antecedentes (que podría o no ser relevante para el problema): Estamos utilizando OLEDB para acceder a una base de datos MS Access (que se encuentra fuera de de C: \ Windows \ Temp). Desafortunadamente, este controlador OLEDB requiere acceso de escritura al directorio TEMP del perfil de usuario (que resulta ser C: \ Windows \ Temp cuando se ejecuta bajo IIS 7.5), de lo contrario, se lanza el temido "Error no especificado" OleDbException. Vea KB 926939 para más detalles. Seguí los pasos en el artículo de KB, pero no ayuda.
detalles:
Ésta es la salida de icacls C:\Windows\Temp
. Por motivos de depuración, concedí todos los permisos a 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)
Sin embargo, esta es la captura de pantalla de 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: Cuando se haya identificado como MYDOMAIN\myuser
, puedo crear archivos en C:\Windows\Temp
el Explorador de Windows sin ningún problema.
EDITAR: Las partes pertinentes de web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
autenticación parece que funciona, es decir, System.Security.Principal.WindowsIdentity.GetCurrent().Name
(que se muestra en mi página de error personalizada) devuelve MYDOMAIN\myuser
.
PS: También consideré publicar esto a ServerFault lugar, pero mi conjetura sería que este es un problema con la forma en ASP.NET se encarga de suplantación de Windows en lugar de una problema de configuración. – Heinzi
¿Cuáles son los valores para '' y '' en 'Web.config' y está configurado para permitir el acceso anónimo (no estoy seguro si esto todavía es aplicable en IIS7)? –
scherand
@scherand: He actualizado mi pregunta. IIS7.5 parece usar la configuración .net w.r.t. acceso anónimo – Heinzi