Zusammenfassung: Eine unserer Webanwendungen erfordert Schreibzugriff auf C:\Windows\Temp
. Unabhängig davon, wie sehr ich die NTFS-Berechtigung schwäche, zeigt procmonACCESS DENIED
.IIS 7.5, ASP.NET, Identitätswechsel und Zugriff auf C: Windows Temp
Hintergrund (was könnte oder nicht für das Problem relevant sein könnten): Wir verwenden OLEDB eine MS Access-Datenbank zuzugreifen (die außerhalb von C: \ Windows \ Temp). Unglücklicherweise benötigt dieser OLEDB-Treiber Schreibzugriff auf das TEMP-Verzeichnis des Benutzerprofils (das bei der Ausführung unter IIS 7.5 C: \ Windows \ Temp ist), andernfalls wird die gefürchtete OleDbException "Unbekannter Fehler" ausgelöst. Einzelheiten finden Sie unter KB 926939. Ich habe die Schritte im KB-Artikel ausgeführt, aber es hilft nicht.
Einzelheiten:
Dies ist die Ausgabe von icacls C:\Windows\Temp
. Zu Debugging-Zwecken habe ich volle Berechtigungen an Everyone
vergeben.
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)
Dies ist jedoch der Screenshot von 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: Wenn sie als MYDOMAIN\myuser
angemeldet, ich Dateien in C:\Windows\Temp
mit dem Windows Explorer ohne Probleme erstellen können.
EDIT: Relevante Teile web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Authentifizierung scheint zu funktionieren, das heißt, System.Security.Principal.WindowsIdentity.GetCurrent().Name
(die auf meine benutzerdefinierte Fehlerseite angezeigt wird) gibt MYDOMAIN\myuser
.
PS: Ich hielt auch diese stattdessen serverfault veröffentlichen, aber meine Vermutung wäre, dass dies ein Problem mit, wie Identitätswechsel ASP.NET-Handles statt mit einem Windows Konfigurationsproblem. – Heinzi
Was sind die Werte für '' und '' in 'Web.config' und ist IIS für anonymen Zugriff konfiguriert (nicht sicher, ob dies noch in IIS7 anwendbar ist)? –
scherand
@scherand: Ich habe meine Frage aktualisiert. IIS7.5 scheint die .net-Einstellungen w.r.t zu verwenden. anonymer Zugang – Heinzi