Problème d'autorisations avec une application ASP.NET utilisant un partage réseau


1

J'ai installé une application ASP.NET sur IIS 7 qui stocke des informations sur un partage réseau Windows. Il a installé avec succès et créé tous les dossiers nécessaires sur le partage. L'application s'exécute sous le compte de service réseau. Habituellement, les autorisations sont définies sur ces dossiers, mais ils ne l'étaient pas cette fois-ci. Je leur ai donc attribué l'autorisation.

Le problème est que j'obtiens une erreur d'accès refusé lorsque j'essaie de naviguer vers la page, car l'application ne peut pas accéder à l'un des dossiers. J'ai attribué la permission à tout le monde au partage, ce qui a maintenant résolu le problème, mais supprimez-le, puis le problème revient. Je ne veux évidemment pas laisser la permission à tout le monde sur ce dossier.

Est-ce que quelqu'un sait ce que le problème pourrait être, ou ce qui peut être utilisé à la place du compte tout le monde?

Je ne suis pas un expert IIS, alors excuses-moi si cela est vague ou ambigu par endroits!

Réponses:


1

Je suppose que vous attribuez un contrôle total à Tout le monde à l'ensemble du partage réseau, et pas seulement à un dossier particulier à l'intérieur du partage.

Vous le savez probablement déjà, mais Windows gère deux autorisations de partage: la sécurité des fichiers et les paramètres de partage. Les deux devront être configurés pour accéder à un partage réseau. Si vous cliquez avec le bouton droit sur un dossier partagé, vous devez définir une autorisation dans les onglets Partage et Sécurité.

Je soupçonne que le problème est réellement lié à l'utilisation du compte NETWORK SERVICE et non à vos autorisations de partage. Les comptes de niveau de service (SYSTEM et NETWORK SERVICE) sont locaux sur votre ordinateur, ce qui a des conséquences. Par exemple, déterminez comment vos autorisations sont configurées à l'aide de noms complets:

Sur votre serveur d'applications, le compte qui exécute votre application ASP.NET est "Serveur 5Lovak's \ NETWORK SERVICE". Sur le partage réseau, qui se trouve sur une autre machine, le compte local est en fait "Serveur de partage réseau 5lovak \ SERVICE RÉSEAU".

Bien qu'ils aient le même nom de compte, il s'agit de comptes différents. Vous ne pourrez donc pas accéder au partage de cette façon.

Je pense que la manière appropriée de configurer cela est de créer un nouveau compte utilisateur Windows et de l'utiliser exclusivement à cette fin. Windows a toujours eu un moyen "peu coûteux" de simuler un utilisateur semblable à un domaine: il suffit de créer un utilisateur local sur les deux ordinateurs et de s’assurer qu’ils ont le même mot de passe. Je ne sais pas pourquoi cela ne s'applique pas au service réseau et au système, mais je soupçonne qu'il y a de bonnes raisons.

Alors, essayez ceci:

  1. Sur votre ordinateur IIS, créez un utilisateur appelé IUSR_SHARE (ou autre). Définir un mot de passe!
  2. Sur votre machine de partage réseau, créez un utilisateur appelé IUSR_SHARE et définissez le même mot de passe.
  3. Dans le Gestionnaire des services Internet, sélectionnez le pool d'applications utilisé par votre application Web (créez-en un nouveau si vous utilisez ceux par défaut). Cliquez sur Paramètres avancés dans la barre d’actions droite. Sous Modèle de processus, définissez l'utilisateur sur IUSR_SHARE.

Je n'ai pas de configuration ici où je peux facilement tester ceci, mais je suppose que cela fonctionnera


Merci pour cela. J'ai créé le nouveau compte comme vous l'avez dit et cela a fonctionné!
5lovak
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.