web-dev-qa-db-fra.com

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

J'utilise IIS Express pour déployer l'application MVC4. Ce site Web fonctionne parfaitement sur le même ordinateur. Mais en réseau local, l'erreur 401 est générée.

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

Contrôleur de maison

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

Je démarre IIS serveur à partir de la commande Invite en mode Administrateur. IIS répond à la demande avec l'erreur 401.

Un indice?

63
java.manish.2015

Je me rends compte que c’est un article plus ancien, mais j’ai eu la même erreur le IIS 8.5. Espérons que cela pourra aider une autre personne à faire face au même problème (je n’ai pas vu mon problème décrit dans d’autres questions avec un contenu similaire. Titre).

Tout semblait configuré correctement avec l'identité du pool d'applications, mais j'ai continué à recevoir l'erreur. Après des recherches approfondies, l'utilisateur anonyme utilise les informations d'identification de l'identité du pool d'applications ou d'un utilisateur spécifique. Pour une raison quelconque, le mien a été configuré par défaut pour un utilisateur spécifique. La modification du paramètre dans l'identité du pool d'applications a résolu le problème pour moi.

  1. Gestionnaire IIS → Sites → Site Web
  2. Double-cliquez sur "Authentification"
  3. Sélectionnez Authentification anonyme
  4. Dans le panneau Actions, sélectionnez Modifier.
  5. Sélectionnez Identité du pool d'applications et cliquez sur OK.

Espérons que cela économise du temps à quelqu'un d'autre!

163
ctc

Si vous utilisez IIS 7 procédez comme suit:

  1. Sélectionnez votre site.
  2. Cliquez sur les pages d'erreur.
  3. Modifier les paramètres de fonctionnalité.
  4. Sélectionnez les erreurs détaillées.

Prendre plaisir.

27
Suraj Shrestha

Assurez-vous que vous avez activé l'authentification anonyme sur iis comme ceci:

enter image description here

11
testCoder

Dans le cas où quelqu'un cherche toujours cela, cela a résolu le problème pour nous:

À qui que ce soit qui puisse m'aider, cela m'a sauvé la vie ...

IIS 7 était difficile à comprendre pour savoir pourquoi je recevais le certificat 401 - Non autorisé: l'accès est refusé en raison d'informations d'identification non valides ... jusqu'à ce que je le fasse ...

  1. Ouvrez IIS et sélectionnez le site Web à l'origine de la 401
  2. Ouvrez la propriété "Authentification" sous l'en-tête "IIS"
  3. Cliquez sur l'élément "Authentification Windows", puis sur "Fournisseurs".
  4. Pour moi, le problème était que Negotiate était au-dessus de NTLM. Je suppose qu'il y avait une sorte de poignée de main dans les coulisses, mais je n'ai jamais été authentifié. J'ai déplacé la NTLM à la première place et BAM qui l'a corrigée.

Voici le lien où cela a été trouvé .

10
Steve

Je me rends compte que c’est une vieille question, mais c’est ce qui est ressorti de mes recherches. Si un problème similaire concernant une application MVC récemment créée et déployée pour la première fois, le mécanisme d’authentification n’avait pas été totalement résolu.

Ce n'était pas un paramètre IIS dans mon cas, c'était un contrôleur qui n'était pas [AllowAnonymous] décoré. J'utilisais un Render.Action/Html.Action dans un Layout.cshtml et l'utilisateur n'était pas authentifié. La disposition a donc tenté de charger une action authentifiée dans un contexte non authentifié.

Une fois que j'ai mis à jour l'action sur AllowAnonymous, le problème a disparu et c'est ce qui m'a amené à le faire .

J'espère que ça aide quelqu'un.

7
poorraj

J'ai fait face à un problème similaire.

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

2
Jishnu

J'ai eu un problème similaire aujourd'hui. Pour une raison quelconque, ma demande GET était correcte, mais PUT la requête échouait pour mon service WebHttp WCF

L'ajout de ce qui suit au fichier Web.config a résolu le problème.

 <system.web>
  <authentication mode="Forms" />
 </system.web>
2
Vijay Vepakomma

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

<system.web>
    <authentication mode="None"/>
</system.web>
2
Chris Gong

j'ai rencontré le même problème sous IIS 8.5. Une solution efficace pour moi consistait à 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 en environnement de production. J'ai ajouté/modifié l'attribut existingResponse dans la section httpErrors, de sorte que IIS ne gère pas les réponses Asp.net existantes:

 <httpErrors existingResponse="PassThrough" />

Cela fonctionne pour moi.

1
Saftpresse99

Dans mon cas,
Mon application est développée en MVC et ma classe de contrôleurs domestiques a été décorée avec [Authorize] qui causait ce problème.
Je l’ai donc supprimée car mon application ne nécessite aucune authentification.

0
Rahul Nikate