将Admin重定向到不同的页面,将User重定向到不同的页面

时间:2013-07-30 06:23:41

标签: asp.net .net loginview

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。

3 个答案:

答案 0 :(得分:2)

你可以用这种简单的方法

  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
       }

答案 1 :(得分:0)

那么问题是什么呢?为什么不将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();
            }

答案 2 :(得分:0)

这是因为@ janki没有在sql语句中使用WHERE子句。 使用类似select User_Type from TableName where username=@user而不是select User_Type from TableName

的内容