2012-08-29 48 views
0

我正在開發使用MVC 4的移動應用程序。我正在保護它。該應用程序有2頁(「家」和「Clientes」)Asp.net mvc和jquery移動身份驗證

當應用程序啓動時,它要求我輸入用戶名和密碼,這是其網址http://localhost:59170/Account/Login?ReturnUrl=%2f

我登錄並進入主頁。這是我可以在IE http://localhost:59170/Account/Login?ReturnUrl=%2f上看到的網址。

從這個頁面我去了Clientes頁面。這是我可以在IE http://localhost:59170/Account/Login?ReturnUrl=%2f#/Clientes上看到的網址。目前一切正常(儘管url像一些陌生人)。

當我按下IE上的後退按鈕時,會發生問題。它必須去主頁,但我去http://localhost:59170/Account/Login?ReturnUrl=%2f#/Account/Login?ReturnUrl=%2f它要求我登錄。

什麼可能導致此行爲,我該如何解決?

回答

0

每當您請求需要驗證的頁面時,.NET都會將您重定向到指定的登錄頁面,並將請求的URL附加到URL。這樣,一旦用戶成功登錄,它將把它們重定向到他們自動請求的頁面。例如,在您的第一個網址中,您的網站的根/主頁的返回網址編碼表示形式爲

它會一直重定向您,直到您通過身份驗證。如果您不想在您的主頁上進行身份驗證,只需使用[授權]註釋您的帳戶控制器,而不是您的家庭控制器

+0

但我第一次通過身份驗證,然後返回登錄頁面但我已通過身份驗證。問題只發生在移動應用程序中。 – felix

+0

我覺得這個問題就是登錄頁面被當作普通頁面來處理。如果我在登錄頁面中按下,我會轉到正確的頁面。我必須按兩次才能返回頁面。謝謝 – felix

+0

回到定義總是會有倒退的效果......它不會確定你已經認證並執行重定向,因爲它沒有向服務器發出請求。你所描述的是標準的瀏覽器功能 – MiiisterJim