Ho un app MVC4 web con il seguente controllerPerché AllowAnonymous non funziona mentre è stato distribuito nei siti Web di Azure?
[Authorize]
public class AccountController : BaseController
{
[AllowAnonymous]
public ActionResult SignInRegister(LoginModel loginModel, string returnUrl)
{
//some implementation
}
//other secured actions
}
Questo funziona come previsto durante l'esecuzione a livello locale, ma non appena mi schiero al sito web gratis Azure ottengo un codice di 401
errore con il messaggio: You do not have permission to view this directory or page.
La rimozione dell'attributo [Authorize]
e il ridistribuzione funziona come previsto, aggiungendolo nuovamente e ridistribuendo il problema.
Ho anche provato i nomi di classe completi: System.Web.Mvc.Authorize
e System.Web.Mvc.AllowAnonymous
con gli stessi risultati.
L'app utilizza .NET 4.5 e il sito Web di Azure è configurato per l'utilizzo 4.5.
UPDATE: Il BaseController
ha un'azione che restituisce l'intestazione vista come parziale che non è stata decorata con [AllowAnonymous]
. A livello locale, la pagina veniva visualizzata senza l'intestazione, ma sui siti Web di Azure la risposta veniva interrotta e restituita solo con il messaggio di errore menzionato sopra. Non mi ero reso conto che mancasse l'intestazione finché non l'ho guardato di proposito.
Ora viene posta la domanda: perché i siti Web di Azure sostituiscono la risposta?
Dovresti pubblicare l'aggiornamento come risposta. – Kyle