90 votes

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

J'utilise IIS Express pour déployer une application MVC4. Ce site web fonctionne parfaitement sur le même ordinateur. Mais dans Lan, il me donne l'erreur 401.

<authentication mode="Forms">
    <forms loginUrl="~/" slidingExpiration="true" timeout="20">
    </forms>
</authentication>

Contrôleur à domicile

[HttpPost]
[AllowAnonymous]        
public ActionResult Index(LoginModel model, string returnUrl)
{
}

Je lance le serveur IIS à partir de l'invite de commande en mode administrateur. IIS répond à la demande avec une erreur 401 .

Un indice ?

1voto

Guy Points 91

Dans mon cas, ce qui a fait que ça a marché c'est changer l'identité de l'utilisateur anonyme d'utilisateur spécifique (IUSR) à identité de pool d'applications. C'est assez étrange car d'autres sites utilisent l'IUSR de l'utilisateur spécifique et fonctionnent bien.

1voto

Oleg Safarov Points 2082

Comme l'ont démontré de nombreuses réponses, l'erreur peut être causée par diverses raisons. Dans mon cas, elle était liée aux règles d'autorisation : elles ont été ajoutées bien plus tard après le déploiement de l'application. Cette fonctionnalité de IIS est activée en tant que composant Windows (World Wide Web Services->Security->URL Authorization).

Cette section particulière dans web.config était à blâmer :

<system.webServer>
  <security>
    <authorization>
      <remove users="*" roles="" verbs="" />
      <add accessType="Deny" users="?" />
      <add accessType="Deny" users="user1,user2" />
      <add accessType="Allow" users="*" />
    </authorization>
  </security>
</system.webServer>

Ainsi, le dossier de users="?" a également bloqué l'accès à un chemin avec une authentification anonyme puisqu'il a hérité des règles par défaut. Cependant, dans IIS, vous pouvez aller dans un dossier/fichier particulier auquel vous devez accéder de manière anonyme et choisir Règles d'autorisation :

enter image description here

Ici, il est possible d'écraser les règles localement en supprimant l'ancienne et en ajoutant éventuellement la règle autorisée à la place pour la rendre plus explicite :

enter image description here

1voto

BurhanY Points 41

Faites un clic droit sur le répertoire principal où se trouvent les fichiers du projet.

Propriétés-> Sécurité-> Edition-> Ajouter-> type IIS_IUSRS et cliquez sur le bouton "Vérifier les noms".

Le résultat sera le suivant ComputerUsername\IIS_IUSRS

Par exemple : DESKTOP-M0R6PVF \IIS_IUSRS

puis cliquez sur le bouton "Ok".

enter image description here

0voto

SharpC Points 488

J'avais un problème de permissions sur un site web et je n'arrivais pas à faire fonctionner l'authentification Windows. Il s'agissait d'un problème de permissions de dossier plutôt que de configuration d'ASP.NET à la fin et une fois que le Everyone l'utilisateur a reçu des permissions, il a commencé à fonctionner.

0voto

Federico Points 113

J'ai eu un problème légèrement différent. Le problème de justificatif d'identité concernait l'utilisateur sous-jacent qui exécute l'application, et non l'utilisateur qui essaie de se connecter. Une façon de tester ceci est d'aller dans IIS Management -> Sites -> Your Site -> Basic Settings -> Test Settings.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X