2012-03-16 13 views
27

Quando accendo il mio progetto ASP.NET MVC dal web server Cassini a IIS Express, questo si aggiunge alla mia applicationhost.config lima:IIS Express disabilita automaticamente l'autenticazione anonima per il mio progetto, perché?

<location path="MyProject"> 
    <system.webServer> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</location> 

sta causando il sito non caricare con 401.2 - non autorizzato e non posso risolvilo sul livello Web.config - allora si lamenterà che la sezione è bloccata a livello di genitore (HTTP 500.19).

Posso risolvere il problema modificando il file applicationhost.config ma non capisco perché dovrei aver bisogno quando non viene aggiunta alcuna sezione per un progetto ASP.NET MVC. Cosa può essere sbagliato?

Sto usando VS 11 beta ma ho anche confermato questo strano comportamento nel 2010 SP1. IIS Express dice che è la versione 7.5.

risposta

58

E 'stato perché per qualche ragione, questo è stato nel mio file csproj:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> 

impostazione a enabled risolve il problema (che può anche essere fatto da Visual Studio, Progetto selezionato, F4, impostare Anonymous Autenticazione nella griglia delle proprietà su Abilitato).

+0

Borek, ho avuto esattamente lo stesso problema. Penso che questo abbia qualcosa a che fare con VS 11? (in cui ha scritto quelle impostazioni) –

+1

Grazie, ho avuto lo stesso problema qui VS 11 Beta. La modifica dell'impostazione precedente ha risolto il problema per me. Grazie! –

+0

FANTASTICO @Borek ... stavo impazzendo per questo! :) –

4

fare clic con il tasto destro del mouse sul progetto e selezionare usare iis express prima di premere F4.

+1

Thx molto. Mi dimentico sempre della finestra degli strumenti delle proprietà rispetto ai file di progetto. – paulroho

+0

Siete i benvenuti. –

0

A volte, ho affrontato la stessa difficoltà, ma era poco diverso da quello che vedo qui. Nel mio portatile ho sia VS 08 e VS 13 e SQL Server 2008 R2 e 11G XE. Per i siti Web che si collegano a R2 non è mai stato un problema, ma quando stavo cercando di costruire un sito Web usando l'abbonamento a Oracle con asp.net, ho scoperto che le pagine si aprivano ma le pagine sotto cartella con i ruoli non si aprivano e mi davano l'errore di accesso negato. Sebbene la cartella avesse un proprio web.config all'interno e l'utente avesse creato lo stesso ruolo, continuava a generare lo stesso errore. Alla fine mi sono reso conto che ho bisogno del meccanismo di autenticazione in corso e così ho aggiunto il seguente codice nel system.web di web.config:

<authentication mode="Forms"> 
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true" 
timeout="90" /> 
</authentication> 
<authorization> 
<deny users="?" /> 
</authorization> 
<identity impersonate="false"/> 
<trace 
enabled="false" 
requestLimit="10" 
pageOutput="false" 
traceMode="SortByTime" 
localOnly="true" 
/> 

Ed ha funzionato, ora i miei utenti autenticati possono loginto cartelle specificate! Spero che questo possa aiutare qualcuno che ha affrontato problemi simili a me.