2011-08-29 17 views
1

我的一些頁面僅限登錄用戶使用。當一個人試圖進入那個頁面時,我將他重定向到登錄頁面。然後成功登錄後,我想將他重定向到以前所需的頁面。記住所需頁面的最佳方式

我在哪裏可以保持該網址?

我不能使用會話機制

非常感謝你的幫助

+0

爲什麼你不能使用會話?你如何檢查用戶是否登錄?你把它保存在數據庫中嗎? – Flinsch

+0

看到這個:http://stackoverflow.com/questions/5697586/how-do-i-redirect-to-a-page-after-successful-login –

+0

我會使用一個隱藏的表單字段,在登錄過程中傳遞處理 – yas4891

回答

5

你可以把它放在查詢字符串像Asp.Net成員一樣。

http://www.example.com/Login?returnUrl=/home/ 
1

把它放在查詢字符串中,例如

http://www.mysite.com/login.aspx?RedirectUrl=SomeRestrictedPage.aspx 
1

我認爲「最好」的辦法就是不記得網址可言,而是把它作爲查詢字符串值到登錄頁面。這是一種更無國界的方法。

當您將用戶重定向到登錄頁面時,您可以將URL encode重定向頁面的路徑添加到重定向中的查詢字符串中。然後,在您的登錄頁面中,檢查該值。如果該值存在(並且通過了您希望添加的任何驗證,例如確保它是到您自己的站點的相對路徑並且是有效頁面等),請將用戶重定向到該頁面。如果不存在,則重定向到默認頁面。

0

只需使用窗體身份驗證,並使用內置ReturnUrl

Explained: Forms Authentication in ASP.NET 2.0

Cookie的Forms身份驗證

ASP.NET 2.0支持Cookie的Forms身份驗證。此功能是 由窗體元素的無cookie屬性控制。這 屬性可以設置爲以下四個值之一:

UseCookies. This value forces the FormsAuthenticationModule class 

使用Cookie傳輸身份驗證票。 UseUri。此值將FormsAuthenticationModule類指向 重寫用於傳輸身份驗證票證的URL。 UseDeviceProfile。該值指示FormsAuthenticationModule類別,以查看瀏覽器功能。如果瀏覽器支持 cookie,則使用cookie;否則,URL被重寫。 AutoDetect。此值指示FormsAuthenticationModule類 檢測瀏覽器是否通過動態檢測機制支持cookie。如果檢測邏輯指示Cookie不支持Cookie,則URL被重寫。

如果您的應用程序配置爲使用Cookie的形式被使用 認證和FormsAuthentication.RedirectFromLoginPage 方法,那麼FormsAuthenticationModule類 自動設置在URL中的窗體身份驗證票。該 下面的代碼示例顯示了一個典型的URL看起來 已被重寫後:

http://localhost/CookielessFormsAuthTest/(F(-k9DcsrIY4CAW81Rbju8KRnJ5o_gOQe0I1E_jNJLYm74izyOJK8GWdfoebgePJTEws0Pci7fHgTOUFTJe9jvgA2))/Test.aspx

相關問題