401 Ongeautoriseerd: toegang wordt geweigerd vanwege ongeldige inloggegevens

Ik gebruik IIS Express om de MVC4-toepassing te implementeren. Deze website draait perfect op dezelfde computer. Maar in Lan krijg ik fout 401.

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

In home-controller

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

Ik start de IIS-server vanaf de opdrachtprompt in de beheerdersmodus. IIS reageert op het verzoek met fout 401.

Enig idee?


Antwoord 1, autoriteit 100%

Ik realiseer me dat dit een ouder bericht is, maar ik had dezelfde fout op IIS 8.5. Hopelijk kan dit een ander helpen die hetzelfde probleem ervaart (ik zag mijn probleem niet beschreven in andere vragen met een vergelijkbare titel).

Alles leek correct te zijn ingesteld met de Application Pool Identity, maar ik bleef de foutmelding krijgen. Na veel speurwerk is er een instelling voor de anonieme gebruiker om de referenties van de identiteit van de toepassingsgroep of een specifieke gebruiker te gebruiken. Om welke reden dan ook, de mijne was standaard ingesteld op een specifieke gebruiker. Het wijzigen van de instelling in de App Pool Identity loste het probleem voor mij op.

  1. IIS Manager > Sites > Website
  2. Dubbelklik op “Verificatie”
  3. Selecteer anonieme authenticatie
  4. Selecteer Bewerken in het deelvenster Acties
  5. Selecteer Application pool Identity en klik op ok

Hopelijk bespaart dit iemand anders wat tijd!


Antwoord 2, autoriteit 13%

Als je IIS 7 gebruikt, doe dan zoiets als dit:

  1. Selecteer uw site.
  2. Klik op foutpagina’s.
  3. Functie-instellingen bewerken.
  4. Selecteer gedetailleerde fouten.

Antwoord 3, autoriteit 5%

Zorg ervoor dat u anonieme authenticatie op iis als volgt hebt ingeschakeld:

voer hier de afbeeldingsbeschrijving in


Antwoord 4, autoriteit 5%

Als iemand hier nog naar op zoek is, dit heeft het probleem voor ons opgelost:

Voor wie dit ook mag helpen, dit heeft mijn leven gered…

IIS 7 was moeilijk te achterhalen waarom ik de 401 kreeg – Ongeautoriseerd: toegang wordt geweigerd vanwege ongeldige inloggegevens… totdat ik dit deed…

  1. Open IIS en selecteer de website die de 401 veroorzaakt
  2. Open de eigenschap “Authenticatie” onder de kop “IIS”
  3. Klik op het item “Windows-verificatie” en klik op “Providers”
  4. Voor mij was het probleem dat Negotiate hoger was dan NTLM. Ik neem aan dat er achter de schermen een soort van handdruk was, maar ik werd nooit echt geauthenticeerd. Ik heb de NTLM naar de bovenste plek verplaatst en BAM heeft het opgelost.

Hier is de link waar dit werd gevonden.


Antwoord 5, autoriteit 3%

Ik realiseer me dat het een oude vraag is, maar dit kwam naar voren in mijn zoekopdrachten. Had een soortgelijk probleem voor een recent gebouwde MVC-toepassing, voor het eerst geïmplementeerd en het verificatiemechanisme was niet volledig uitgehold.

Het was in mijn geval geen IIS-instelling, het was een Controller die niet [AllowAnonymous] was gedecoreerd. Ik gebruikte een Render.Action/Html.Action in een Layout.cshtml en de gebruiker was niet geverifieerd. Dus de lay-out probeerde een geverifieerde actie te laden in een niet-geverifieerde context.

Toen ik de actie had bijgewerkt naar AllowAnonymous, verdween het probleem en dit is wat me ertoe bracht.

Ik hoop dat dit iemand helpt.


Antwoord 6

Ik had een soortgelijk probleem.

De map is gedeeld en er is toestemming voor geverifieerde gebruikers gegeven, waardoor mijn probleem is opgelost.


Antwoord 7

Ik had vandaag een soortgelijk probleem. Om de een of andere reden was mijn GET-verzoek in orde, maar het PUT-verzoek voor mijn WCF WebHttp-service

Het volgende toevoegen aan de Web.config loste het probleem op

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

Antwoord 8

Ik kwam deze fout tegen toen ik een leeg project met de MVC-mappen maakte en de applicatie vervolgens op de server implementeerde. Mijn probleem was dat ik de authenticatie niet definieerde in Web.config, dus ik hoefde deze regel alleen maar toe te voegen aan een system.web-tag.

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

Antwoord 9

Ik had hetzelfde probleem onder IIS 8.5. Een werkende oplossing voor mij was het veranderen van de IIS om gedetailleerde fouten weer te geven. Zie antwoord van sna2stha. Maar ik denk dat het geen goed idee is om gedetailleerde foutmeldingen door te sturen naar browsers in productieomgevingen.
Ik heb het kenmerk ‘existentResponse’ toegevoegd/gewijzigd in de httpErrors-Section, zodat de IIS geen bestaande Asp.net-respons heeft verwerkt:

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

Dit werkt voor mij.


Antwoord 10

Ik had dit probleem op IIS 10. Dit is hoe ik het heb opgelost.

  1. IIS openen
  2. Selecteer de site
  3. Verificatie openen
  4. Anoniem authenticatie bewerken
  5. Selecteer Application Pool Identity

Antwoord 11

In mijn geval werkte het door het wijzigen van de identiteit van de anonieme gebruiker van Specifieke gebruiker (IUSR) in Application Pool Identity. Vreemd genoeg omdat andere sites de specifieke gebruikers-IUSR gebruiken en prima werken.


Antwoord 12

Ik had een probleem met de machtigingen voor een website en kreeg de Windows-verificatie gewoon niet werkend. Het was een mapmachtigingen in plaats van een ASP.NET-configuratieprobleem uiteindelijk en zodra de Everyone-gebruiker toestemming had gekregen, begon het te werken.


Antwoord 13

Ik had een iets ander probleem. Het probleem met de inloggegevens was voor de onderliggende gebruiker die de toepassing uitvoerde, niet voor de gebruiker die probeerde in te loggen. Een manier om dit te testen is door naar IIS Management -> Locaties -> Uw site -> Basisinstellingen -> Testinstellingen.


Antwoord 14

Zoals zoveel antwoorden hebben aangetoond, kan de fout verschillende redenen hebben. In mijn geval had het te maken met autorisatieregels: die werden pas veel later toegevoegd nadat de applicatie was uitgerold. Deze functie van IIS is ingeschakeld als een Windows-component (World Wide Web Services->Security->URL-autorisatie).

Deze specifieke sectie binnen web.config was de schuldige:

<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>

Dus het record voor users="?" blokkeerde ook de toegang tot een pad met anonieme authenticatie, omdat het de regels standaard heeft overgenomen. In IIS kunt u echter naar een bepaalde map/bestand gaan dat anoniem moet worden geopend en Autorisatieregels kiezen:

voer hier de afbeeldingsbeschrijving in

Hier is het mogelijk om de regels lokaal te overschrijven door de oude te verwijderen en eventueel de toegestane regel toe te voegen om deze explicieter te maken:

voer hier de afbeeldingsbeschrijving in


Antwoord 15

In mijn geval,
Mijn applicatie is ontwikkeld in MVC en mijn thuiscontrollerklasse is versierd met [Authorize] die dit probleem veroorzaakte.
Dus ik heb het verwijderd omdat mijn applicatie geen authenticatie vereist.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

12 + 10 =

Other episodes