Résumé: Une de nos applications Web nécessite un accès en écriture à C:\Windows\Temp
. Cependant, peu importe combien je affaiblis la permission NTFS, procmon montre ACCESS DENIED
.IIS 7.5, ASP.NET, emprunt d'identité et accès à C: Windows Temp
Contexte (qui pourrait ou non être pertinents pour le problème): Nous utilisons OLEDB pour accéder à une base de données MS Access (qui est situé en dehors de C: \ Windows \ Temp). Malheureusement, ce pilote OLEDB nécessite un accès en écriture au répertoire TEMP du profil utilisateur (qui se trouve être C: \ Windows \ Temp lorsqu'il est exécuté sous IIS 7.5), sinon l'erreur OleDbException redoutée "Unspecified Error" est levée. Voir KB 926939 pour plus de détails. J'ai suivi les étapes de l'article de la base de connaissances, mais cela n'aide pas.
Détails:
Ceci est la sortie de icacls C:\Windows\Temp
. À des fins de débogage, j'ai donné des autorisations complètes à 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)
Cependant, ceci est la capture d'écran 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: Une fois connecté comme MYDOMAIN\myuser
, je peux créer des fichiers dans C:\Windows\Temp
en utilisant Windows Explorer sans aucun problème.
EDIT: Les parties pertinentes du web.config:
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
authentification semble fonctionner, à savoir System.Security.Principal.WindowsIdentity.GetCurrent().Name
(qui figure sur ma page d'erreur personnalisée) retourne MYDOMAIN\myuser
.
PS: Je considérais aussi ce détachement à la place serverfault, mais je pense que ce serais un problème avec la façon dont ASP.NET gère l'usurpation d'identité plutôt que Windows problème de configuration. – Heinzi
Quelles sont les valeurs de '' et '' dans 'Web.config' et IIS est-il configuré pour autoriser l'accès anonyme (pas sûr si cela est toujours applicable dans IIS7)? –
scherand
@scherand: J'ai mis à jour ma question. IIS7.5 semble utiliser les paramètres .net w.r.t. accès anonyme. – Heinzi