2012-07-26 9 views
5

Wcześniej miałem dodany Login.aspx do dokument domyślny sekcji w IIS.uwzględniając aby zalogować się do aplikacji asp.net dwa razy ze względu na „Default” Dokumentu w IIS

Jednak, gdy ktoś uzyskiwał dostęp do aplikacji, wymagane było logowanie dwukrotnie:. Pierwszy nie powiedziałby żadnego komunikatu o błędzie lub nie przekierowałby do następnej strony w aplikacji. A drugi przekieruje użytkownika na oczekiwaną stronę. A użytkownik korzystał z prawych poświadczeń za każdym razem.

Jak tylko usunięte Login.aspx z dokument domyślny sekcji w IIS, a użytkownik dostarczyła pełen link do aplikacji (~/login.aspx), problemem było, jak było wymagane tylko do zalogowania się raz.

Czy ktoś wie, dlaczego tak się dzieje?

Odpowiedz

0

Czy masz stronę indeksu ustawioną jako domyślną i obecną?

ze swojego rzadkiego informacji można znaleźć jednego (z wielu możliwych) Wyjaśnienie:

pierwszy można dostać się do yoursite.com (bez określania Login.aspx) przekierowuje do Login.aspx za kulisami, ale pobytów url to samo. Po przesłaniu z pliku login.aspx prawdopodobnie trafi on na inną (istniejącą) stronę, która przekieruje użytkownika do login.aspx (tym razem przepisanie adresu URL).

JEŚLI chcesz lepsze wyjaśnienie trzeba będzie podać więcej szczegółów

+0

Dziękujemy za odpowiedź. Niestety, nie ma innej strony, do której przekierowuje "za kulisami". Byłbym szczęśliwy, oferując więcej szczegółów, które mogą być istotne dla mojego pytania. Proszę, daj mi znać – aleafonso

+0

Twój login.aspx ma w sobie formularz, ten formularz wysyła do strony, strony, która przetwarza dane wejściowe formularza (sprawdza nazwę użytkownika i hasło) [formProcessor.aspx] przekierowuje na normalne strony przetwarzania [] validUser.aspx] jeśli nazwa użytkownika i hasło są prawidłowe lub wracają do login.aspx, jeśli są nieprawidłowe. W tym miejscu opisuję normalne standardowe zachowanie, podając przykładowe nazwy stron dla odniesienia w nawiasach kwadratowych, ponieważ nie podajesz mi żadnych szczegółów. Kiedy formularz logowania przesyła do [formProcessor.aspx], ta strona przetwarzania może sprawdzić stronę odsyłającą, aby zobaczyć, że żądanie pochodzi z pliku login.aspx. –

+0

Aby ułatwić sobie życie, zamiast tego dodaj przekierowanie po stronie klienta. –

0

W Global.asax dodać te linie

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. 

} 
Powiązane problemy