2012-05-17 114 views
0

在我的網站中,我想將用戶重定向到會話超時前的相同頁面。在會話超時後記住頁面

我試圖通過查詢字符串發送url,但它沒有工作,因爲url也包含「&」。

我的網址是:Default.aspx?FileID=23&TabID=3

查詢字符串只有Default.aspx?FileID=23和TabID被省略。有什麼辦法我也可以得到它?如果沒有查詢字符串,是否有其他方法?

+0

您使用表單身份驗證嗎? –

回答

2

當會話超時嘗試這一點,如果使用窗體身份驗證只是FormsAuthentication.RedirectToLoginPage();是足夠的,但如果你想重定向到其他頁面而不是登錄使用下面的自定義行。並使用Server.UrlEncode允許查詢字符串中的&

 public static void DisposeAndLogout() 
      { 

       HttpContext context = HttpContext.Current; 
       try 
       { 
        FormsAuthentication.SignOut(); 
        FormsAuthentication.Initialize(); 
        Roles.DeleteCookie(); 
        context.Session.Clear(); 
       } 
       catch (Exception ex) 
       { 
        ErrorHandler.HandleException(ex); 
       } 
       finally 
       { 
        FormsAuthentication.RedirectToLoginPage(); 
//or can send to some other page 
        string OriginalUrl = context.Request.RawUrl; 
        string LoginPageUrl = @"~\Login.aspx"; 
        context.Response.Redirect(String.Format("{0}?ReturnUrl={1}", LoginPageUrl, context.Server.UrlEncode(OriginalUrl))); 
       } 
      } 
+0

非常感謝。這正是我正在尋找的。 – user1509