在会话超时后记住页面

时间:2012-05-17 07:33:41

标签: asp.net session c#-4.0 session-timeout request.querystring

在我的网站中,我想将用户重定向到会话超时前他/她所在的同一页面。

我通过querystring发送url来尝试它,但它没有用,因为url也包含“&”。

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

查询字符串只有Default.aspx?FileID=23,省略了TabID。有什么方法我也可以得到它吗?如果不是使用查询字符串,还有其他方法吗?

2 个答案:

答案 0 :(得分:2)

当会话超时尝试这个时,如果使用表单auth只是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)));
                }
            }

答案 1 :(得分:1)

如果您使用的是FormsAuthentication:

登录:

FormsAuthentication.RedirectFromLoginPage() 

http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx

注销:

FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspx