«401 Unauthorized» sur un annuaire

86

Je suppose qu'il s'agit d'une erreur IIS, car cela ne se produit pas si j'exécute le projet sur ma machine locale.

J'ai mes feuilles de style à ~/Content/css

Tous les fichiers de ce répertoire ne se chargeront pas sur la page, et lorsque j'y accède directement, j'obtiens une erreur de serveur:

401 - Non autorisé: l'accès est refusé en raison d'informations d'identification non valides.

Vous n'êtes pas autorisé à afficher ce répertoire ou cette page à l'aide des informations d'identification que vous avez fournies.

Cela ne se produit qu'avec ce répertoire, je n'ai aucun problème à accéder à d'autres fichiers. Dois-je faire quelque chose dans IIS7 pour arrêter cela?

Steven
la source

Réponses:

46

Il est probable que vous ne disposiez pas de l' autorisation IUSR_ computername sur ce dossier. Je viens de passer une analyse rapide et il semble que vous trouverez les informations dont vous avez besoin ici .

Si ce n'est pas le cas, le navigateur vous demande-t-il votre nom d'utilisateur et votre mot de passe? Si tel est le cas, il se peut qu'IIS soit configuré pour utiliser uniquement l'authentification intégrée, comme décrit ici .

m.edmondson
la source
4
Si vous utilisez un pool d'applications pour gérer votre accès à la base de données / au système de fichiers, ne le faites pas. Lisez la suite pour voir la réponse d'imanabidi ci-dessous.
Ryan Shillington
merci, dans mon cas, je viens d'ajouter tout le monde avec un contrôle total
MorenajeRD
8
support.microsoft.com/kb/313075 - Cette page n'existe plus. @ m.edmondson
Divya
294
  1. Ouvrez IIS et sélectionnez le site qui cause 401
  2. Sélectionnez la propriété d' authentification dans l'en-tête IIS
  3. Sélectionnez l' authentification anonyme
  4. Faites un clic droit dessus, sélectionnez Modifier et choisissez Identité du pool d'applications
  5. Redémarrez le site et cela devrait fonctionner
Jasenkoh
la source
13
Cela fonctionne mais pourquoi? Pouvez-vous expliquer un peu plus?
nthapa
2
Cela semble fonctionner car, par défaut, «l'utilisateur spécifique» pour l'authentification anonyme est IUSR, comme mentionné dans la réponse acceptée. Cependant, l'identité définie sur le pool d'applications doit avoir des autorisations sur l'ensemble du site Web, sinon le site ne se chargerait pas. Ainsi, bien que mon compte IUSR n'y ait pas accès (en fait, semble ne pas exister), le compte utilisé par le pool d'applications le fait.
Johann
6
Cela fonctionne, mais ce qui est déroutant, c'est que cela fonctionnait très bien pendant environ 2 ans, puis aujourd'hui, sans raison connue, cela a cessé de fonctionner ... votre solution l'a résolu.
Serj Sagan
J'ai passé des heures sur ce problème et pas de chance jusqu'à ce que je trouve ça! J'avais une application Web MVC 5 qui, une fois publiée en mode version, puis chargeant le site sur chrome, le contenu se chargerait mais les styles ne le seraient pas. Les liens sont là et les chemins étaient corrects mais ils étaient tous vides! Ce correctif a résolu mon problème.
GIVE-ME-CHICKEN
dans mon cas, je devais simplement activer l'authentification anonyme car elle était désactivée par défaut lors de la création de l'application
Paul
14
  • Ouvrez IIS
  • sélectionnez le site sur lequel vous rencontrez le problème

  • Sélectionnez ci-dessous

entrez la description de l'image ici

- Faites un clic droit sur l'authentification anonyme et cliquez sur modifier et suivez ci-dessous

entrez la description de l'image ici

Siddhartha
la source
5

Vous n'êtes pas autorisé à afficher ce répertoire ou cette page à l'aide des informations d'identification que vous avez fournies.

Cela s'est produit malgré le fait que l'utilisateur soit déjà authentifié via Active Directory.

Il peut y avoir de nombreuses causes à l'erreur Accès refusé, mais si vous pensez que vous avez déjà tout configuré correctement à partir de votre application Web, il se peut qu'un petit détail soit oublié. Assurez-vous de donner l'autorisation appropriée aux utilisateurs authentifiés pour accéder à votre répertoire d'applications Web.

Voici les étapes que j'ai suivies pour résoudre ce problème.

  1. Cliquez avec le bouton droit sur le répertoire dans lequel l'application Web est stockée, sélectionnez Propriétés et cliquez sur l'onglet Sécurité.

  2. Cliquez sur le bouton Cliquez sur Modifier…, puis sur le bouton Ajouter…. Tapez Utilisateurs authentifiés dans le champ Entrez les noms des objets à sélectionner., Puis sur le bouton Ajouter . Tapez Utilisateurs authentifiés dans Entrez les noms des objets à sélectionner.

  3. Cliquez sur OK et vous devriez voir Utilisateurs authentifiés comme l'un des noms d'utilisateur. Donnez les autorisations appropriées sur la case Autorisations pour les utilisateurs authentifiés dans la partie inférieure si elles ne sont pas déjà cochées.

  4. Cliquez deux fois sur OK pour fermer la boîte de dialogue. Cela devrait prendre effet immédiatement, mais si vous voulez en être sûr, vous pouvez redémarrer IIS pour votre application Web.

Actualisez votre navigateur et il devrait afficher la page Web maintenant.

J'espère que cela t'aides!

Kent Aguilar
la source
2

Vous devez vérifier les autorisations de dossier sur votre serveur et vérifier que le compte que vous utilisez pour exécuter votre application a accès à ce dossier.

Gaz d'hiver
la source
0

Pour moi, l'accès utilisateur anonyme était correct au niveau du serveur, mais variait à un seul de mes dossiers «virtuels».

Cela m'a pris un peu de sombrer et ensuite de l'aide d'un collègue pour apprendre qu'IIS a également des paramètres "d'authentification" au niveau du dossier virtuel - j'espère que cela aide quelqu'un d'autre avec ma situation difficile.

utilisateur6096790
la source
0

Dans notre cas, il s'agissait d'une authentification Windows intégrée spécifiée dans l'application web.config

MAIS le module windows-auth n'a pas du tout été installé sur la machine IIS.

Juste en ajoutant une autre raison possible.

Alex
la source
-4

Une autre solution simple que j'ai trouvée consistait à supprimer le site IIS local (à partir du gestionnaire IIS), puis à recréer le répertoire virtuel à partir des «Propriétés» de votre projet Web dans Visual Studio.

KWondra
la source