2012-03-26 3 views
7

Possiedo un sito MVC, protetto utilizzando gli attributi [Autorizza], ma presenta un problema in un sito Web di produzione che utilizza il Single Sign-On su una coppia o siti su server diversi. Voglio escludere l'autenticazione come causa; esiste un modo per disattivare temporaneamente l'autenticazione tramite web.config in modo che sia possibile accedere a tutte o ad alcune azioni del controller con l'attributo autorizza senza effettuare l'accesso?Disattivazione dell'autenticazione in MVC tramite web.config

EDIT:

Ho provato ad aggiungere quanto segue al file web.config:

<authentication mode="None" /> 

Ma questo fa sì che tutte le azioni decorate con Autorizza attributo per il rendering delle pagine vuote. Azioni senza Autorizza continuano a lavorare anche se

+0

Mi piace. Ho appena cercato: autenticazione asp.net nessuna pagina vuota e ho trovato questa domanda. Il mio problema era che avevo l'autorizzazione impostata su nient'altro che accidentalmente aveva dichiarazioni Autorizzazione avanzate in uno dei miei controller. La tua domanda è stata la mia risposta. Grazie! – TTT

+0

Ed è per questo che adoro lo stack overflow :) Sono contento che mi sia stato d'aiuto - mi ha sicuramente graffiato la testa quando l'ho colpito per la prima volta. – mutex

risposta

8

c'è un modo per disattivare temporaneamente l'autenticazione attraverso web.config in modo che tutti o alcuni azioni di controllo che hanno l'attributo Autorizza si può accedere senza effettuare il login?

No, questo non è possibile con il framework predefinito. Sono abbastanza sicuro che lo AuthorizeAttribute nel codice sorgente MVC proverà a controllare e vedere se l'utente è connesso. Senza un utente autenticato, l'accesso verrebbe negato.

6

Utilizzare [AllowAnonymous] per consentire l'utilizzo di azioni specifiche in un controller da parte di utenti non autorizzati.

0

Nel web.config commento fuori il bambino:

<authentication mode="Windows" /> 
<authorization> 
    <!--<deny users="?" />--> 
</authorization> 
0

è possibile consentire a tutti gli utenti l'accesso al sistema aggiungendo il seguente nel web.config. Quando il controllore controlla l'autorizzazione, l'utente verrà verificato poiché consente a tutti gli utenti con autenticazione Windows di accedere al sistema.

<authentication mode="Windows" /> 
    <authorization> 
     <allow users="*"/> 
    <!--<deny users="?" />--> 
    </authorization>