繁体   English   中英

会话结束后将用户重定向到他最后访问的页面,然后重新登录

[英]Redirect user to his last visited page after session ends and relogin

我正在尝试实现一个选项,当用户超时后,在他再次登录后,他将被重定向到他所处的上一页。我似乎遇到的问题是,当用户无法访问该页面时,会话结束。 我尝试了类似的东西:

protected void Session_end(object sender, EventArgs e)
{
    string userUrl = Request.Url.AbsoluteUri;
    Application["userUrl"] = userUrl;
}

然后在会话开始时检查网址是否存在并重定向到该网址。

protected void Session_Start(object sender, EventArgs e)
{
    try
        {
            string userUrl = Application["userUrl"].ToString();
        }
        catch
        {}
}

我得到的错误是string userUrl = Request.Url.AbsoluteUri;上的“请求在此上下文中不可用” string userUrl = Request.Url.AbsoluteUri; 谁能解释我在做什么错?

在每个页面加载中,您应该将用户名和url存储在一些持久性存储中。 然后,当新会话开始时,查找用户名的URL,并将客户端重定向到此页面。

在Session_End()中,如果要访问Request对象,则需要通过HttpContext.Current.Request访问它。

但是据我所知,如果您使用表单身份验证,则在会话结束时,默认情况下,FormAuthenticationModule会将您重定向到登录页面,其中returnUrl作为URL中的查询字符串。 在登录页面中,您只需检查该参数,即可在身份验证成功后进行重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM