Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 会话结束并重新登录后,将用户重定向到上次访问的页面_C#_Asp.net_Session - Fatal编程技术网

C# 会话结束并重新登录后,将用户重定向到上次访问的页面

C# 会话结束并重新登录后,将用户重定向到上次访问的页面,c#,asp.net,session,C#,Asp.net,Session,我试图实现一个选项,当用户超时时,在他再次登录后,他将被重定向到他所在的上一个页面。我似乎遇到的问题是,当会话结束时,我无法获取页面的url。 我试过这样的方法: protected void Session_end(object sender, EventArgs e) { string userUrl = Request.Url.AbsoluteUri; Application["userUrl"] = userUrl; } 在会话开始时,检查url是否存在并重定向到它 p

我试图实现一个选项,当用户超时时,在他再次登录后,他将被重定向到他所在的上一个页面。我似乎遇到的问题是,当会话结束时,我无法获取页面的url。 我试过这样的方法:

protected void Session_end(object sender, EventArgs e)
{
    string userUrl = Request.Url.AbsoluteUri;
    Application["userUrl"] = userUrl;
}
在会话开始时,检查url是否存在并重定向到它

protected void Session_Start(object sender, EventArgs e)
{
    try
        {
            string userUrl = Application["userUrl"].ToString();
        }
        catch
        {}
}
我得到的错误是
string userUrl=Request.Url.AbsoluteUri上的“请求在此上下文中不可用”

. 有人能解释一下我做错了什么吗?

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

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

在会话_End()中,如果要访问请求对象,需要通过HttpContext.Current.Request访问它

但据我所知,若您使用表单身份验证,当会话结束时,默认情况下FormAuthenticationModule会将您重定向到登录页面,url中的查询字符串为returnUrl。在登录页面中,您只需检查该参数,并在身份验证成功后执行重定向。

在会话_End()中,如果要访问请求对象,需要通过HttpContext.Current.Request访问它

但据我所知,若您使用表单身份验证,当会话结束时,默认情况下FormAuthenticationModule会将您重定向到登录页面,url中的查询字符串为returnUrl。在登录页面中,您只需检查该参数,并在身份验证成功后执行重定向