web-dev-qa-db-fra.com

Comment donner à ASP.NET l'autorisation d'écrire dans un dossier de Windows 7?

J'ai un nouveau poste de travail Win7 et j'essaye de faire fonctionner ScrewTurn Wiki sur la machine. Mon installation STW utilise l'option de système de fichiers pour stocker ses données. Par conséquent, je dois accorder des autorisations en écriture au processus de travail ASP.NET dans le dossier d'installation du site Web.

CEPENDANT, je n'arrive pas à trouver le nom du processus de travail dans Win7 pour l'ajouter aux autorisations du dossier. Dans XP c'était ASPNET_WP, si je me souviens bien, mais ce n'est pas son nom dans Win7.

Quelqu'un peut-il me dire s'il vous plaît?

Édité pour ajouter:

En réponse à @Dragan_Radivojevic, voici à quoi ressemble le pool d'applications en question (nommé ScrewTurnWiki):

IIS7 Application Pools

L'identité est "ApplicationPoolIdentity"

58
Cyberherbalist

Donner des autorisations d'écriture à tous les groupes IIS_USRS est une mauvaise idée du point de vue de la sécurité. Vous n'avez pas besoin de faire cela et vous pouvez donner des autorisations uniquement aux utilisateurs du système qui exécutent le pool d'applications.

Si vous utilisez II7 (et je suppose que vous le faites), procédez comme suit.

  1. Ouvrez IIS7
  2. Sélectionnez le site Web pour lequel vous devez modifier les autorisations.
  3. Accédez aux paramètres de base et voyez quel pool d'applications vous utilisez.
  4. Accédez aux pools d'applications et recherchez un pool d'applications à partir de # 3.
  5. Rechercher un compte système utilisé pour exécuter ce pool d'applications (colonne Identity)
  6. Accédez à votre dossier de stockage dans IIS, sélectionnez-le et cliquez sur Modifier les autorisations (sous le menu Actions à droite).
  7. Ouvrez l'onglet Sécurité et ajoutez les autorisations nécessaires uniquement pour l'utilisateur identifié dans # 3.

Remarque n ° 1: si vous voyez ApplicationPoolIdentity dans n ° 3, vous devez référencer cet utilisateur système comme suit IIS AppPool {nom_pool_application}. Par exemple IIS AppPool\DefaultAppPool

Remarque n ° 2: lors de l'ajout de cet utilisateur, veillez à définir les emplacements corrects dans la boîte de dialogue Sélectionner des utilisateurs ou des groupes. Ceci doit être défini sur la machine locale car il s'agit d'un compte local.

128
Dragan Radivojevic

Je sais que c'est un ancien fil de discussion, mais pour développer davantage la réponse ici, par défaut IIS 7.5 crée des comptes d'identité de pool d'applications dans lesquels le processus de travail est exécuté. Vous ne pouvez pas rechercher ces comptes comme d'habitude. comptes d’utilisateur lors de l’ajout d’autorisations de fichier. Pour les ajouter à ACL d’autorisation NTFS, vous pouvez taper le nom complet de l’identité du pool d’applications et cela fonctionnera.

Il ne s'agit que d'une légère différence dans la gestion des comptes d'identité de pool d'applications, car ils sont vus comme des comptes virtuels.

De plus, le nom d'utilisateur de l'identité du pool d'applications est "IIS AppPool\nom du pool d'applications". Par conséquent, s'il s'agissait du pool d'applications DefaultAppPool, le compte d'utilisateur serait "IIS AppPool\DefaultAppPool".

Ceux-ci peuvent être vus si vous ouvrez la gestion de l'ordinateur et regardez les membres du groupe local IIS_IUSRS. Le SID ajouté à la fin de ceux-ci n'est pas nécessaire lors de l'ajout du compte dans une ACL d'autorisation NTFS.

J'espère que ça t'as aidé

31
steve

Ma solution immédiate (puisque je ne pouvais pas trouver le processus de travail ASP.NET) consistait à donner l'autorisation d'écriture (c'est-à-dire de modifier) ​​à IIS_IUSRS. Cela a fonctionné. Il me semble me rappeler que dans WinXP, je devais spécifiquement donner au processus de travail ASP.NET le droit d’écrire pour y parvenir. Peut-être que ma mémoire est défectueuse, mais de toute façon ...

@DraganRadivojevic a écrit qu'il pensait que c'était dangereux du point de vue de la sécurité. Je ne suis pas en désaccord avec moi, mais comme c'était mon poste de travail et non un serveur de réseau, cela semblait relativement sûr. Dans tous les cas, sa réponse est meilleure et c'est ce que j'ai finalement décidé après avoir traqué un chemin d'échec pour ne pas avoir spécifié le domaine correct pour l'utilisateur AppPool.

13
Cyberherbalist

La commande complète serait quelque chose comme ci-dessous, notez les citations

icacls "c:\inetpub\wwwroot\tmp"/grant "IIS AppPool\DefaultAppPool: F"

2
namvan