Sommario: una delle nostre applicazioni Web richiede l'accesso in scrittura a C:\Windows\Temp
. Tuttavia, indipendentemente dal grado di indebolimento dell'autorizzazione NTFS, procmon mostra ACCESS DENIED
.IIS 7.5, ASP.NET, rappresentazione e accesso a C: Windows Temp
Sfondo (che potrebbe o non potrebbe essere rilevante per il problema): Stiamo usando OLE DB per accedere a un database MS Access (che si trova al di fuori di C: \ Windows \ Temp). Sfortunatamente, questo driver OLEDB richiede l'accesso in scrittura alla directory TEMP del profilo utente (che risulta essere C: \ Windows \ Temp quando è in esecuzione in IIS 7.5), altrimenti viene generata la temuta "Errore non specificato" OleDbException. Vedi KB 926939 per i dettagli. Ho seguito i passaggi nell'articolo della Knowledge Base, ma non aiuta.
dettagli:
Questa è l'uscita di icacls C:\Windows\Temp
. A scopo di debug, ho fornito le autorizzazioni complete 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)
Tuttavia, questo è lo screenshot di 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: Quando si accede come MYDOMAIN\myuser
, posso creare i file in C:\Windows\Temp
utilizzando Windows Explorer senza problemi.
EDIT: parti rilevanti del web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
autenticazione sembra funzionare, vale a dire, System.Security.Principal.WindowsIdentity.GetCurrent().Name
(che è indicata sulla mia pagina di errore personalizzata) restituisce MYDOMAIN\myuser
.
PS: Ho anche considerato questo distacco a serverfault, invece, ma la mia ipotesi è che si tratta di un problema con il modo in ASP.NET gestisce la rappresentazione piuttosto che un Windows problema di configurazione. – Heinzi
Quali sono i valori per '' e '' in 'Web.config' e IIS è configurato per consentire l'accesso anonimo (non sono sicuro che sia ancora applicabile in IIS7)? –
scherand
@scherand: ho aggiornato la mia domanda. IIS7.5 sembra utilizzare le impostazioni .net w.r.t. accesso anonimo. – Heinzi