"401 Unauthorized" su una directory


87

Presumo che questo sia un errore di IIS, poiché ciò non accade se eseguo il progetto sulla mia macchina locale.

Ho i miei fogli di stile su ~/Content/css

Tutti i file in quella directory non verranno caricati sulla pagina e quando li accedo direttamente, ricevo un errore del server:

401 - Non autorizzato: accesso negato a causa di credenziali non valide.

Non disponi dell'autorizzazione per visualizzare questa directory o pagina utilizzando le credenziali fornite.

Questo accade solo con quella directory, non ho problemi ad accedere ad altri file. C'è qualcosa che devo fare in IIS7 per fermarlo?

Risposte:


47

È probabile che tu non disponga dell'autorizzazione IUSR_ nomecomputer per quella cartella. Ho appena eseguito una rapida scansione e sembra che qui troverai le informazioni di cui hai bisogno .

Se non è così, ti vengono richiesti nome utente e password dal browser? In tal caso, è possibile che IIS sia configurato per utilizzare solo l'autenticazione integrata, come descritto qui .


4
Se stai utilizzando un pool di applicazioni per gestire l'accesso al tuo db / file system, non farlo. Continua a leggere per vedere la risposta di imanabidi di seguito.
Ryan Shillington

grazie, nel mio caso ho appena aggiunto tutti con il pieno controllo
MorenajeRD

8
support.microsoft.com/kb/313075 - Questa pagina non esiste più. @ m.edmondson
Divya

296
  1. Apri IIS e seleziona il sito che causa 401
  2. Selezionare la proprietà di autenticazione nell'intestazione IIS
  3. Seleziona Autenticazione anonima
  4. Fare clic con il tasto destro su di esso, selezionare Modifica e scegliere Identità pool di applicazioni
  5. Riavvia il sito e dovrebbe funzionare

13
Funziona ma perché? Puoi spiegare un po 'di più?
nthapa

2
Questo sembra funzionare perché, per impostazione predefinita, "l'utente specifico" per l'autenticazione anonima è IUSR, come menzionato nella risposta accettata. Tuttavia, l'identità impostata nel pool di applicazioni deve disporre delle autorizzazioni per l'intero sito Web, altrimenti il ​​sito non verrà caricato. Quindi, mentre il mio account IUSR non aveva accesso (in effetti, sembra non esistere), l'account utilizzato dal pool di applicazioni lo fa.
Johann

6
Funziona, ma ciò che è fonte di confusione è che ha funzionato bene per circa 2 anni e poi oggi per nessun motivo noto ha smesso di funzionare ... la tua soluzione lo ha risolto.
Serj Sagan,

Ho trascorso ore su questo problema e senza fortuna finché non l'ho trovato! Avevo un'app Web MVC 5 che una volta pubblicata in modalità di rilascio e quindi caricando il sito su Chrome, il contenuto veniva caricato ma gli stili no. I collegamenti ci sono ei percorsi dove sono corretti tuttavia erano tutti vuoti! Questa correzione ha risolto il mio problema.
GIVE-ME-CHICKEN

nel mio caso dovevo solo abilitare l'autenticazione anonima poiché era disabilitata per impostazione predefinita quando è stata creata l'applicazione
Paul

16
  • Apri IIS
  • seleziona il sito in cui stai affrontando il problema

  • Seleziona sotto

inserisci qui la descrizione dell'immagine

- Fare clic con il tasto destro su Autenticazione anonima e fare clic su Modifica e seguire di seguito

inserisci qui la descrizione dell'immagine


6

Non disponi dell'autorizzazione per visualizzare questa directory o pagina utilizzando le credenziali fornite.

Ciò è accaduto nonostante l'utente fosse già autenticato tramite Active Directory.

Ci possono essere molte cause per l'errore di accesso negato, ma se pensi di aver già configurato tutto correttamente dalla tua applicazione web, potrebbe esserci un piccolo dettaglio che è stato dimenticato. Assicurati di concedere l'autorizzazione appropriata agli utenti autenticati per accedere alla directory dell'applicazione web.

Ecco i passaggi che ho seguito per risolvere questo problema.

  1. Fare clic con il pulsante destro del mouse sulla directory in cui è archiviata l'applicazione Web, selezionare Proprietà e fare clic sulla scheda Protezione.

  2. Fare clic su Fare clic su Modifica…, quindi sul pulsante Aggiungi…. Digitare Authenticated Users in Immettere i nomi degli oggetti da selezionare, quindi il pulsante Aggiungi . Digitare Authenticated Users in Immettere i nomi degli oggetti da selezionare.

  3. Fare clic su OK e dovresti vedere Authenticated Users come uno dei nomi utente. Assegna le autorizzazioni appropriate alla casella Autorizzazioni per utenti autenticati all'estremità inferiore se non sono già selezionate.

  4. Fare clic su OK due volte per chiudere la finestra di dialogo. Dovrebbe avere effetto immediato, ma se vuoi esserne sicuro, puoi riavviare IIS per la tua applicazione web.

Aggiorna il tuo browser e dovrebbe visualizzare la pagina web ora.

Spero che sia di aiuto!


3

È necessario controllare le autorizzazioni della cartella sul server e verificare che l'account che si sta utilizzando per eseguire l'applicazione abbia accesso a quella cartella.


0

Per me l'accesso utente anonimo andava bene a livello di server, ma variava solo in una delle mie cartelle "virtuali".

Mi ci è voluto un bel po 'di naufragio e poi un po' di aiuto da un collega per apprendere che IIS ha anche le impostazioni di "autenticazione" a livello di cartella virtuale - spero che questo aiuti qualcun altro con la mia situazione.


0

Nel nostro caso è stata specificata l'autenticazione integrata di Windows nell'app web.config

MA il modulo windows-auth non è stato installato affatto sulla macchina IIS.

Aggiungo solo un'altra possibile ragione.


-4

Un'altra semplice soluzione che ho trovato è stata eliminare il sito IIS locale (dall'interno di Gestione IIS) e quindi ricreare la directory virtuale dalle "Proprietà" del tuo progetto web in Visual Studio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.