Asp.net 身份验证后,页面重定向回登录页面
我有一个简单的登录页面,如下所示:Asp.net 身份验证后,页面重定向回登录页面,asp.net,authentication,login,authorization,Asp.net,Authentication,Login,Authorization,我有一个简单的登录页面,如下所示: protected void btnLogIn_Click(object sender, EventArgs e) { FormsAuthentication.Initialize(); string CS = ConfigurationManager.ConnectionStrings["IS"].ConnectionString; using (SqlConnection con = new SqlConnection(CS
protected void btnLogIn_Click(object sender, EventArgs e)
{
FormsAuthentication.Initialize();
string CS = ConfigurationManager.ConnectionStrings["IS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("Select Roles from tblRegisteredUsers where Email=@Email and Password=@Password",con);
cmd.Parameters.AddWithValue("@Email", txtEmail.Text);
cmd.Parameters.AddWithValue("@Password", txtPassword.Text);
SqlDataReader rdr = cmd.ExecuteReader();
if(rdr.Read())
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
txtEmail.Text,
DateTime.Now,
DateTime.Now.AddMinutes(30),
true,
rdr.GetString(0),
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,hash);
if(ticket.IsPersistent) cookie.Expires=ticket.Expiration;
Response.Cookies.Add(cookie);
string returnUrl = Request.QueryString["returnUrl"];
if(returnUrl==null) returnUrl="/";
Response.Redirect(returnUrl);
}
else
{
lblMessage.Text = "Invalid Email/Password.Please try again.";
}
rdr.Close();
}
}
我对每个文件夹都使用了文件夹级角色身份验证,每个文件夹都有自己的web.config文件。我确信用户成功地通过了身份验证,因为用户可以在loginName中看到用户名。这肯定是一个重定向问题。成功登录后,我如何将用户重定向到我的主页
还有人在这方面帮我吗?只是一个建议。您可以重定向到主页,或者在需要时创建一个全局变量,并在其中维护上次访问的页面url。希望对您有所帮助强> 我认为您的查询字符串获取空值,这就是为什么它统计IF条件并将返回URL作为“/”的原因,因此它重定向到当前页面 在突出显示的部分附近放置一个调试点,查看返回url的值,而不是
string returnUrl = Request.QueryString["returnUrl"];
if(returnUrl==null) returnUrl="/";
Response.Redirect(returnUrl);
只要写
Response.Redirect(<"your url for the homepage">);
Response.Redirect();
乙二醇
对于MVC应用程序,它将是
Response.Redirect(“/home/index”)代码>您必须重定向到另一个页面,如下所示:
Response.Redirect("myhomepage.aspx");
与MVC中需要提供URL的页面不同,您需要在页面末尾提供.aspx扩展名。为returnUrl
请求参数传入了什么值?@RobbyCornelissen-我没有看到任何指定returnUrl请求参数的内容。您一定是在谈论querystring请求权?那么,我在哪里分配它呢?您将在这里获得returnUrl
request参数:string returnUrl=request.QueryString[“returnUrl”]代码>我理解。但我如何确定用户每次登录时的值是多少?好吧,对于初学者,添加一条调试语句以查看您收到的实际值是多少。如果是某种形式的登录URL,那么这就是问题的原因。您是否尝试了静态URL作为响应。重定向还是在“返回URL”中?