[英]Redirect Admin to different page and User to different Page
SqlConnection con= new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from login where Email =@username and Password=@password and Activated_User=1 and User_Type=1", con);
cmd.Parameters.AddWithValue("@username", Login1.UserName);
cmd.Parameters.AddWithValue("@password", Login1.Password);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable ds = new DataTable();
da.Fill(ds);
if (ds.Rows.Count > 0)
{
Session["UID"] = Login1.UserName;
Response.Redirect("dashboard.aspx");
}
else
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Invalid Username and Password')</script>");
}
嗨,我是.NET新手。上面的代码是LOGIN页面。 我想分别将管理员和用户重定向到不同的页面(dashboard.aspx和user-dashboard.aspx)。 User_Type = 1表示Admin,如果为2,则表示USER。
你可以用这种简单的方式
SqlConnection con = new SqlConnection("Connection string");
con.Open();
DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("select User_Type from TableName", con);
SqlDataAdapter da = new SqlDataAdapter();
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(ds);
if(ds.Tables[0].Rows.Count > 0)
{
int usertype = Convert.ToInt32(ds.Tables[0].Rows[0]["User_Type"]);
if(usertype==1)
{
Response.Redirect("dashboard.aspx");
}
else if(usertype==2)
{
Response.Redirect("user_dashboard.aspx");
}
}
else
{
//record is not in ur table
}
那么问题是什么呢? 为什么不将User_Type作为存储用户信息的表中的列放入数据库中,然后检索其值并在切换条件下使用它将用户重定向到正确的页面。
例如
try{
con.Open();
cmd = new SqlCommand("select User_Type from TableName where username=@user", con);
cmd.Parameters.Add("@user", SqlDbType.Int).Value = "PersonName";
dr = cmd.ExecuteReader();
if (dr.HasRows == false)
{
throw new Exception();
}
if (dr.Read())
{
int Value = Convert.ToInt32(dr[0].ToString());
}
switch(Value)
{
case 1:
Response.Redirect("dashboard.aspx");
break;
case 2:
Response.Redirect("user_dashboard.aspx");
break;
}
}
catch
{
Result.Text = "THE GIVEN ID IS UNAVAILABLE";
}
finally
{
con.Close();
}
那是因为@ janki没有在sql语句中使用WHERE子句。 使用类似于select User_Type from TableName where username=@user
而不是select User_Type from TableName
中select User_Type from TableName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.