Ho appena iniziato a utilizzare ASP.NET MVC 5 (ho già utilizzato molte versioni precedenti) e ho un problema molto strano: ho creato un nuovo sito Web utilizzando il modello ASP.NET di Visual Studio 2013 (completamente aggiornato). Per le opzioni del modello ho selezionato il modello MVC, il tipo di autenticazione "Account utente singolo", nessun cloud hosting e nessun altro componente rispetto alla libreria MVC principale. Dopo aver convalidato le opzioni, aggiorno tutti i pacchetti NuGet. E dopo di ciò premo F5 (senza aprire o modificare nessuno dei nuovi file di progetto).ASP.NET MVC 5: reindirizzamento senza fine alla pagina di accesso utilizzando il modello di sito
Il browser si apre solo per mostrare una pagina di errore, a causa di un loop di reindirizzamento infinite: l'URL mostra:
http://localhost:24585/Account/Login?ReturnUrl=%2FAccount%2FLogin%3FReturnUrl%3D%252FAccount%252FLogin%253FReturnUrl%253D%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FAccount%252525<snip>
Ancora una volta, questo è con il brodo, non modificato modello ASP.NET MVC. Ho fatto controllare che l'URL di accesso è definito nelle opzioni dei cookie auth, e che sembra buono:
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
L'unica cosa che potrebbe forse rompere il sito Web predefinito è qualcosa nei file globali web.config/Machine.config , anche se di solito evito di fare scherzi con loro sul mio box di sviluppo. L'avvio del modello senza aggiornare i pacchetti NuGet non risolve il problema. Probabilmente c'è qualcosa di sbagliato nella lib di Identity di ASP.NET, ma non lo conosco davvero e non sono riuscito a trovare alcuna informazione pertinente correlata al mio problema.
Domanda: Qualcuno sa qual è il problema, o almeno qual è il modo migliore per risolvere questo problema?
Grazie
È necessario almeno creare la pagina di accesso '[AllowAnonymous]' – tweray
La pagina di accesso contiene già il filtro '[AllowAnonymous]' nel modello di sito. – Shtong
Qualcosa da qualche parte richiede un login per rendere effettivamente l'azione di login. Se hai già aggiunto '[AllowAnonymous]' all'azione di login, controlla eventuali azioni child che vengono chiamate dal layout o dalla vista. Se qualcuno di questi è in un controller con '[Authorize]' applicato, ha anche bisogno di '[AllowAnonymous]'. –