Voilà un petit tutorial pour ASP3 et ASP.NET sur les utilisateurs Windows à autoriser pour pouvoir écrire dans un fichier ou un dossier. Cela explique également comment résoudre certaines erreurs comme "Vous devez utiliser une requête qui peut être mise à jour" et d'autres erreurs dues aux droits d'écriture sur les fichiers.
Partons avec quelques notions de base :
Lorsqu'un poste client se connecte à un site hébergé sur IIS, il est associé au compte d'utilisateur anonyme d'IIS qui est normalement nommé IUSR_NOMDUSERVEUR. Toutes les opérations faites par les pages vues par ce "client" s'exécutent dans le processus d'IIS mais pour Windows, l'utilisateur qui effectue ces opérations s'appelle toujours IUSR_NOMDUSERVEUR. Le reste des opérations effectuées par IIS (autres qu'exécuter des pages web) sont représentés dans Windows par l'utilisateur IWAM_NOMDUSERVEUR.
Voilà qui devrait suffire...
L'ASP est exécuté sous forme d'une "application" ISAPI par IIS. Donc toutes les pages ASP qui sont sur le serveur sont exécutées par IUSR_NOMDUSERVEUR. C'est là que ça devient intéressant : Dès qu'il s'agit de lire ou d'écrire dans un répertoire, c'est IUSR_NOMDUSERVEUR qui le fait !! Donc si une de vos pages ASP utilise le FSO pour écrire dans un fichier : c'est IUSR_NOMDUSERVEUR qui doit pouvoir le faire, sinon vous aurez droit à une belle erreur. Pareil pour écrire dans une base Access: c'est IUSR_NOMDUSERVEUR qui le fait à la place de vos pages.
Donc pour pouvoir écrire dans un fichier, une base de données, pour pouvoir créer un répertoire ou des dossiers, il faut :
L'ASP.NET est compilé et interprété par le Framework .Net. Celui-ci est représenté auprès du système d'exploitation par l'utilisateur ASPNET (sans le point entre les deux !) ou l'utilisateur "Services Réseaux" sous Windows 2003. Donc, dès qu'il s'agit de lire ou d'écrire dans un répertoire, c'est ASPNET qui le fait !! Donc si vos pages écrivent à un moment dans un fichier XML ou dans une base Access par exemple, c'est ASPNET qui doit pouvoir le faire, sinon vous aurez droit à une belle erreur !!
Donc pour pouvoir écrire dans un fichier, une base de données, pour pouvoir créer un répertoire ou des dossiers, il faut :
J'ai juste fait ce petit tutorial pour éviter de répondre toutes les semaines aux mêmes questions sur des problèmes d'écriture de fichiers...Et puis dans l'espoir que ça puisse servir à quelqu'un ! :)
Nurgle
http://nurgle.blogspot.com