2012-07-26 4 views
5

In precedenza, avevo aggiunto login.aspx alla sezione Documento predefinito in IIS.Dovendo accedere due volte all'applicazione asp.net a causa di "Documento predefinito" in IIS

Tuttavia, quando qualcuno stava accedendo all'applicazione, è stato richiesto il login due volte. Il primo non direbbe alcun messaggio di errore o nessun reindirizzamento alla pagina successiva nell'applicazione. E il secondo reindirizzerebbe effettivamente l'utente alla pagina prevista. E l'utente stava usando le credenziali giuste entrambe le volte.

Appena ho cancellato login.aspx dal Documento predefinito sezione nel IIS, e l'utente fornisce il collegamento completo per l'applicazione (~/login.aspx), il problema era andato come era richiesto solo per accedere una volta.

Qualcuno sa perché questo sta accadendo?

risposta

0

Avete una pagina indice impostata come predefinita e presente?

dalle informazioni scarse posso trovare uno (dei possibili molti) spiegazione:

prima si arriva a yoursite.com (senza specificare la login.aspx) che reindirizza a Login.aspx dietro le quinte, ma soggiorni url lo stesso. Quando si invia da login.aspx, probabilmente si passa ad un'altra pagina (esistente), che reindirizza l'utente a login.aspx (riscrivendo l'url questa volta).

SE si desidera una migliore spiegazione è necessario fornire maggiori dettagli

+0

Grazie per la risposta. Sfortunatamente, non c'è altra pagina a cui sta reindirizzando "dietro le quinte". Sarei felice di offrire maggiori dettagli che potresti trovare pertinenti alla mia domanda. Per favore, fammi sapere – aleafonso

+0

Il tuo login.aspx ha un modulo in esso, questo modulo posta su qualche pagina, la pagina che elabora l'input del modulo (convalida userName e password) [formProcessor.aspx] reindirizza alla pagina di elaborazione normale [s] [ validUser.aspx] se userName e password sono validi o tornano a login.aspx se non sono validi. Qui descrivo il normale comportamento standard dando come esempio i nomi delle pagine come riferimento tra parentesi quadre perché non mi dai dettagli. Quando il modulo di accesso viene inoltrato a [formProcessor.aspx], questa pagina di elaborazione può controllare il referrer per vedere che la richiesta proviene da login.aspx. –

+0

Per semplificare la vita, aggiungi invece il reindirizzamento lato client. –

0

In Global.asax aggiungere queste righe

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (Request.QueryString.ToString().EndsWith("ReturnUrl=%2f")) 
       System.Web.HttpContext.Current.Response.Redirect("~/login.aspx"); 

    if (Request.AppRelativeCurrentExecutionFilePath == "~/") 
     HttpContext.Current.RewritePath("login.aspx");//This is the default page to navigate after a successful login. 

} 
Problemi correlati