成功登录asp.net后,将用户重定向回源页面
本文关键字:重定向 用户 asp 登录 net 成功 | 更新日期: 2023-09-27 18:23:48
大家好,我正在为我最后一年的项目做一个小的asp.net项目,我正在做一个网上购物网站。我的网站Login.aspx、detail.aspx和mobile.aspx中有三个页面在mobile.aspx中,当用户单击详细信息按钮时,会将用户重定向到detail.aspx页面使用response.redirect();(这一步没有问题)。现在在detail.aspx页面中,当用户单击addtoCart按钮时,页面首先检查用户是否登录(使用session["authenticated"]!=null方法)如果它被登录了,那么根据我的说法,一切都会好起来现在,当用户没有登录并单击addtoCart按钮时,问题就来了,它会将用户重定向到login.aspx页面在登录页面中,当用户单击登录按钮时,它会检查用户是否从详细信息页面重定向(使用会话["productID"]!=null)如果是,它应该将用户重定向回detail.aspx页面,但它没有这样做这是我的代码,请帮助我
login.aspx
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
SqlConnection connection = new SqlConnection(conn);
connection.Open();
cmd = new SqlCommand("select COUNT(*) from customer_login where login_id = @a and pass_login=@b",connection);
cmd.Parameters.AddWithValue("@a", Login1.UserName);
cmd.Parameters.AddWithValue("@b", Login1.Password);
string user_name;
int i = Convert.ToInt32(cmd.ExecuteScalar().ToString());
ViewState["PreviousPage"] = Request.UrlReferrer.ToString();//to retrive the url from where it is redirected, this will be used to redirect the user from where it comes(detail.aspx)
if (i == 1)
{
e.Authenticated = true;
Session["authenticatedUser"] = Session.SessionID;
Session["loginid"] = Login1.UserName.ToString();
cmd = new SqlCommand("select f_name from customer where id = (select cust_id from customer_login where login_id = @a)", connection);
cmd.Parameters.AddWithValue("@a", Login1.UserName);
sdr = cmd.ExecuteReader();
sdr.Read();
user_name = sdr["f_name"].ToString();
sdr.Close();
if (Session["productID"] != null&&ViewState["PreviousPage"].ToString())//to check if the user is redirected from detail.aspx page
{
Session["user"] = user_name.ToString();
Response.Redirect(ViewState["PreviousPage"].ToString());
}
else
{
Session["user"] = user_name.ToString();
Response.Redirect("Index.aspx");
}
}
else
{
e.Authenticated = false;
}
}
登录的结果是将用户重定向到index.aspx页面,而不是详细信息页面
我在detail.aspx页面中找到了我使用querystring发送源页面(detail.aspx)的url的解决方案
Response.Redirect("~/login.aspx?redirect="+Request.Url.ToString());
然后将其检索到login.aspx
if (Session["productID"] != null&&!string.IsNullOrEmpty(Request.QueryString["redirect"]))
{
Session["user"] = user_name.ToString();
Response.Redirect(Request.QueryString["redirect"].ToString()+"&ssid="+Session["authenticatedUser"].ToString());
//Response.Redirect(ViewState["PreviousPage"].ToString());
// Response.Redirect("~/shop/Cart.aspx?ssid="+Session["authenticatedUser"].ToString()+"&pr="+Session["productID"].ToString());
}
else
{
Session["user"] = user_name.ToString();
Response.Redirect("Default.aspx");
}