如何使用session实现分权限登录,例如表中的status值为1或2来分权限
如何用session取值并且验证和跳转,在线等 谢谢

解决方案 »

  1.   

    把权限放在数组中,然后把数组放进SESSION中,后台读取SEEION取出数组,然后遍历数组是否有指定权限(比如某页限定权限为5),如果不存在,就跳转。
      

  2.   


    Session["Status"] = Status.Text;if Session["Status"]=1 then
    Response.write("");
    else这么跳?具体有代码么?
      

  3.   

    不需要多少代码哎,直接判断一下如果你的status为1那么Response.Redirect("权限为1的用户界面");反之,则跳转到其他权限页面
    或者,直接在一个页面判断下权限,哪个不显示,哪个显示!
      

  4.   

    如果LZ 是用不同页页代表权限体现的话,可通过!
    LZ写的code去实现呀!如果在一个页面中不同的权限按钮,要去动态的判断是否用户可用及可见性!!!
      

  5.   


            //权限角色表检查
            if(Session["log"]==null)
            {
                //添加权限
                 ArrayList list = new xxxx(Name);//得到权限列表,naem为用户名
                Session["log"] = list;
            }
     #region 权限检查
            bool Permission = true;
            if (Session["log"] != null)
            {
                ArrayList list = (ArrayList)Session["log"];
                if (list.Contains("1")//本页需要权限1才可以进入)
                {
                    Permission = false;
                }
            }
            if (Permission)
            {
                Response.Clear();
                Response.Write("<script language=\"javascript\">alert(\"对不起你没有权限进入\");history.go(-1);</script>");
                Response.End();
            }
            #endregion在后台page_load事件中加入上面这段话就可以了
      

  6.   

    具体的判断以及取值的代码是什么,有人写一个么,我还不会呢.如何将Status的值取出并且判断权限啊
      

  7.   


        protected void Button1_Click(object sender, EventArgs e)
        {
             SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=StudentManager;Integrated Security=True");
            SqlCommand cmd = new SqlCommand("select * from Userss where UserName='" + UserName.Text + "'", conn); //创建查询用户名是否存在数据对象
            try
            {
                conn.Open();  //打开连接
                SqlDataReader sdr = cmd.ExecuteReader();
                if (sdr.Read())  //如果用户名输入正确
                {
                    if (sdr["UserPassword"].ToString() ==PassWord.Text)//密码正确
                    {
                        conn.Close();
                        Session["UserName"] = UserName.Text.Trim();//存储用户名                    bool Permission = true;
                        if (Session["Status"] != null)
                        {
                            ArrayList list = (ArrayList)Session["Status"];
                            if (list.Contains("1"))
                            {
                                Permission = false;
                                Response.Redirect("Default.aspx");
                              
                            }
                        }
                        if (Permission)
                        {
                            Response.Clear();
                            Response.Write("<script language=\"javascript\">alert(\"对不起你没有权限进入\");history.go(-1);</script>");
                            Response.End();
                        }
                        //Response.Redirect("Default.aspx");  //进入系统
                    }
                    else
                    {
                        Response.Write("<script language=javascript>alert('您输入的密码错误!')</script>");
                    }
                }
                else
                {
                    Response.Write("<script language=javascript>alert('您输入的用户名错误或该用户名不存在!')</script>");
                }
            }        catch (System.Exception ee)
            {
                Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>");
            }
            finally
            {
                conn.Close();
            }
        
        }
    }
    为什么这么改了不是跳转一个页面 而是弹出一个网页消息PassWord呢?
      

  8.   


    这样的session权限判断最好少用
    因为这样的权限如果做不好会出问题的
    还是放在数据库的验证好一些
      

  9.   

    把权限放到Session里 /// <summary>
            /// 执行权限检查
            /// </summary>
            /// <param name="PermitID">权限ID</param>
            /// <returns></returns>
            protected bool PermitExcute(int PermitID)
            {
                 DataTable m_dt=(DataTable)Session["UserPermitTable"];
                 var query = from pl in m_dt.AsEnumerable() where pl.Field<int>("Adm_FunItem_Id")==PermitID select pl;
                 return (query.Count()>0) ? true : false;
            }
      

  10.   

    怎么为Session["Status"]赋值,验证到if (Session["Status"] != null)这个
      

  11.   

    赋值:session["Status"] = 值(好像能任意类型)
    验证:if(Session["Status"].ToString() != null)
      

  12.   

    你要从数据库表中取出值,然后付进Session中?为什么要这样做?说说你的思路吧。
      

  13.   

    要判断权限,Status中存各个用户的权限值,之后见表中的Status的值给Session["Status"]然后判断 Session["Status"] = sdr["Status"].ToString();
                        
                        if (Session["Status"]!= null)
                        {
                            ArrayList list = (ArrayList)Session["Status"];
                            if (list.Contains("1"))
                            {
                                Permission = false;
                                Response.Redirect("Default.aspx");                        }
                           
                        }现在有这个就是会出错string无法转换为ArrayList怎么解决
      

  14.   

    结贴变33了```````````
       取到值  然后   在后台  NEW 一个TREEVIEW   有那个权限的就输出出来,没那个权限  就不输出那个树``
      

  15.   

    ArrayList 只能加上去,不能强制类型转换。
      

  16.   

    object list = Session["Status"];
    if (list.Equals("1"))
      

  17.   

    ArrayList list = {Session["Status"]};
      

  18.   

    LZ的意思是,根据表中Status这一列的值来进行权限分配,如果登录进来的人的权限值是1那么就跳到、、、如果是2就跳到、、、   是这样吗?