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 ?

6voto

greenlight247 Points 61

J'ai eu ce problème sur IIS 10. Voici comment je l'ai résolu.

  1. Ouvrir IIS
  2. Sélectionnez le site
  3. Authentification ouverte
  4. Modifier l'authentification anonyme
  5. Sélectionnez l'identité du pool d'applications

3voto

Chris Gong Points 4756

J'ai rencontré cette erreur lorsque j'ai créé un projet vide avec les dossiers MVC, puis déployé l'application sur le serveur. Mon problème était que je n'avais pas défini l'authentification dans le champ Web.config Il ne me restait donc plus qu'à ajouter cette ligne à un fichier de type system.web étiquette.

<system.web>
    <authentication mode="None"/>
</system.web>

2voto

Jishnu Points 21

J'ai rencontré le même problème.

Le dossier a été partagé et l'autorisation des utilisateurs authentifiés a été accordée, ce qui a résolu mon problème.

2voto

Saftpresse99 Points 318

J'ai rencontré le même problème sous IIS 8.5. Une solution qui a fonctionné pour moi a été de changer le IIS pour afficher les erreurs détaillées. Voir la réponse de sna2stha. Mais je pense que ce n'est pas une bonne idée de transmettre des messages d'erreur détaillés aux navigateurs dans des environnements de production. J'ai ajouté/changé l'attribut existingResponse dans la section httpErrors, de sorte que l'IIS ne gère pas les réponses Asp.net existantes :

<system.webServer>
   <httpErrors existingResponse="PassThrough" />
</system.webServer>

Cela fonctionne pour moi.

2voto

Vijay Vepakomma Points 69

J'ai eu un problème similaire aujourd'hui. Pour une raison quelconque, mon GET était bien, mais PUT a échoué pour ma demande de Service WCF WebHttp

L'ajout des éléments suivants au Web.config a résolu le problème

 <system.web>
  <authentication mode="Forms" />
 </system.web>

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