Exemple #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //验证权限
        AuthComm.chekcAuth_fromsession("1", UserSession.最终权值_后台菜单权限, true);

        if (!IsPostBack)
        {
            //加载菜单
            ReLoadNode();
        }
    }
Exemple #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //验证权限
        AuthComm.chekcAuth_fromsession("1", UserSession.最终权值_后台菜单权限, true);

        if (!IsPostBack)
        {
            //绑定所有可选权限
            //调用执行方法获取数据
            DataSet  ds     = new DataSet();
            object[] re_dsi = IPC.Call("获取所有已启用的权限枚举", new object[] { "" });
            if (re_dsi[0].ToString() == "ok" && re_dsi[1] != null)
            {
                //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
                ds = (DataSet)re_dsi[1];

                Unumber1.DataSource     = ds.Tables[0];
                Unumber1.DataTextField  = "ANBaseName";
                Unumber1.DataValueField = "ANBaseNumber";
                Unumber1.DataBind();


                Unumber2.DataSource     = ds.Tables[1];
                Unumber2.DataTextField  = "ANBaseName";
                Unumber2.DataValueField = "ANBaseNumber";
                Unumber2.DataBind();

                Unumber3.DataSource     = ds.Tables[2];
                Unumber3.DataTextField  = "ANBaseName";
                Unumber3.DataValueField = "ANBaseNumber";
                Unumber3.DataBind();

                Unumber4.DataSource     = ds.Tables[3];
                Unumber4.DataTextField  = "ANBaseName";
                Unumber4.DataValueField = "ANBaseNumber";
                Unumber4.DataBind();

                Unumber5.DataSource     = ds.Tables[4];
                Unumber5.DataTextField  = "ANBaseName";
                Unumber5.DataValueField = "ANBaseNumber";
                Unumber5.DataBind();
            }
            else
            {
                errmsg.Text = re_dsi[1].ToString();//向客户端输出错误字符串
            }



            //加载菜单
            ReLoadNode();
        }
    }
Exemple #3
0
    protected override void OnInit(EventArgs e)
    {
        //登录状态判定
        if (UserSession.唯一键 == "")
        {
            Response.Redirect("/adminht/login.aspx?u=" + StringOP.encMe(Request.Url.PathAndQuery, "mima"));
            return;
        }
        if (!AuthComm.chekcAuth_fromsession("1", UserSession.最终权值_全局独立权限, false))
        {
            Response.Redirect("/adminht/login.aspx?f=exit&meiyouquanxian=yes");
            return;
        }

        base.OnInit(e);
    }
Exemple #4
0
    public DataTable dtgzt = new DataTable(); //我的工作台数据
    protected void Page_Load(object sender, EventArgs e)
    {
        //检查仪表盘显示权限
        qx_zysj = AuthComm.chekcAuth_fromsession("2", UserSession.最终权值_全局独立权限, false);


        ////调用执行方法获取数据
        object[] re_dsi = IPC.Call("获取我的工作台数据", new object[] { UserSession.唯一键, "" });
        if (re_dsi[0].ToString() == "ok")
        {
            //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
            dtgzt = (DataTable)(re_dsi[1]);
            //
        }
        else
        {
            dtgzt = null;
        }
    }
Exemple #5
0
    /// <summary>
    /// 通过session检查权限(用户后台)
    /// </summary>
    /// <param name="enumNumber">要检查的权限权值枚举值(在配置中查阅)</param>
    /// <param name="SUfinal_Number">当前用户某个类型的最终权值</param>
    /// <param name="Do_Redirect">没有权限时,是否跳转到无权提示页面.true为跳转,false为不跳转。 一般情况用true,需要自己特殊处理代码的才用false,因为false不跳转等于没有控制权限只是检测了结果</param>
    /// <returns>是否具备指定权限</returns>
    public static bool chekcAuth_fromsession_userht(string enumNumber, string SUfinal_Number, bool Do_Redirect)
    {
        //检查唯一编号是否存在
        if (UserSession.唯一键 == "")
        {
            HttpContext.Current.Response.Redirect("/userht/login.aspx?u=" + StringOP.encMe(HttpContext.Current.Request.Url.PathAndQuery, "mima"));
            return(false);
        }
        //检查是否具备权限
        if (!AuthComm.checkAuth(SUfinal_Number, enumNumber, UserSession.是否超管))
        {
            if (Do_Redirect)
            {
                HttpContext.Current.Response.Redirect("/userht/auth_noauth.aspx");
            }

            return(false);
        }
        else
        {
            return(true);
        }
    }
Exemple #6
0
    /// <summary>
    /// 重新加载菜单
    /// </summary>
    private void ReLoadNode()
    {
        errmsg.Text = "";

        tbshowname    = "所有权限组";
        dbtbname.Text = "auth_group";


        if (Request["sortid"] == null || Request["sortid"].ToString().Trim() == "")
        {
            sh_SortID.Text = "0";
            ee_SortID.Text = "0";
        }
        else
        {
            sh_SortID.Text = Request["sortid"].ToString().Trim();
            ee_SortID.Text = Request["sortid"].ToString().Trim();
        }


        //加载原始数据等待修改
        if (sh_SortID.Text == "0" || sh_SortID.Text == "" || dbtbname.Text == "")
        {
        }
        else
        {
            //调用执行方法获取数据
            DataSet  dsD     = new DataSet();
            object[] re_dsiD = IPC.Call("获取单条菜单数据", new object[] { dbtbname.Text, sh_SortID.Text });
            if (re_dsiD[0].ToString() == "ok")
            {
                //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
                dsD = (DataSet)re_dsiD[1];
                try
                {
                    ee_SortName.Text = dsD.Tables["数据记录"].Rows[0]["SortName"].ToString();
                    sh_SortName.Text = dsD.Tables["数据记录"].Rows[0]["SortName"].ToString();

                    //把已有的权限分解并展示
                    Dictionary <string, string> dic_Unumber1 = AuthComm.GetEnumFormUnumber(dsD.Tables["数据记录"].Rows[0]["Unumber1"].ToString());
                    foreach (KeyValuePair <string, string> kv in dic_Unumber1)
                    {
                        ListItem lt = Unumber1.Items.FindByValue(kv.Value);
                        if (lt != null)
                        {
                            lt.Selected = true;
                        }
                    }

                    Dictionary <string, string> dic_Unumber2 = AuthComm.GetEnumFormUnumber(dsD.Tables["数据记录"].Rows[0]["Unumber2"].ToString());
                    foreach (KeyValuePair <string, string> kv in dic_Unumber2)
                    {
                        ListItem lt = Unumber2.Items.FindByValue(kv.Value);
                        if (lt != null)
                        {
                            lt.Selected = true;
                        }
                    }

                    Dictionary <string, string> dic_Unumber3 = AuthComm.GetEnumFormUnumber(dsD.Tables["数据记录"].Rows[0]["Unumber3"].ToString());
                    foreach (KeyValuePair <string, string> kv in dic_Unumber3)
                    {
                        ListItem lt = Unumber3.Items.FindByValue(kv.Value);
                        if (lt != null)
                        {
                            lt.Selected = true;
                        }
                    }

                    Dictionary <string, string> dic_Unumber4 = AuthComm.GetEnumFormUnumber(dsD.Tables["数据记录"].Rows[0]["Unumber4"].ToString());
                    foreach (KeyValuePair <string, string> kv in dic_Unumber4)
                    {
                        ListItem lt = Unumber4.Items.FindByValue(kv.Value);
                        if (lt != null)
                        {
                            lt.Selected = true;
                        }
                    }

                    Dictionary <string, string> dic_Unumber5 = AuthComm.GetEnumFormUnumber(dsD.Tables["数据记录"].Rows[0]["Unumber5"].ToString());
                    foreach (KeyValuePair <string, string> kv in dic_Unumber5)
                    {
                        ListItem lt = Unumber5.Items.FindByValue(kv.Value);
                        if (lt != null)
                        {
                            lt.Selected = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    errmsg.Text = "获取数据出错";
                }
            }
            else
            {
                errmsg.Text = re_dsiD[1].ToString();//向客户端输出错误字符串
            }
        }

        TV.Nodes.Clear();
        //调用执行方法获取数据
        DataTable dt = new DataTable();

        object[] re_dsi = IPC.Call("获取菜单数据", new object[] { dbtbname.Text, 0, 1 });
        if (re_dsi[0].ToString() == "ok")
        {
            //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
            dt = (DataTable)re_dsi[1];
        }
        else
        {
            errmsg.Text = re_dsi[1].ToString();//向客户端输出错误字符串
        }
        this.InitNode(dt);
        //TV.ExpandAll();
    }
Exemple #7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     //验证权限
     AuthComm.chekcAuth_fromsession("8", UserSession.最终权值_后台菜单权限, true);
 }
Exemple #8
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //验证权限
        AuthComm.chekcAuth_fromsession("4", UserSession.最终权值_后台菜单权限, true);

        if (!IsPostBack)
        {
            if (Request["UAid"] == null || Request["UAid"].ToString().Trim() == "")
            {
                ;
            }
            else
            {
                string UAid = Request["UAid"].ToString().Trim();
                //有UAid,开始找数据,找到了才能修改
                DataSet  ds     = new DataSet();
                object[] re_dsi = IPC.Call("获取单个用户权限", new object[] { UAid });
                if (re_dsi[0].ToString() == "ok" && re_dsi[1] != null)
                {
                    //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
                    ds = (DataSet)re_dsi[1];
                    if (ds.Tables["返回值单条"].Rows[0]["执行结果"].ToString() == "ok")
                    {
                        //超管账号不允许编辑
                        if (ds.Tables["数据记录"].Rows[0]["SuperUser"].ToString() == "1")
                        {
                            addbutton1.Enabled = false;
                            addbutton1.Text    = "超管账号不能进行编辑";
                        }


                        quyu_zhao.Visible   = false;
                        quyu_peizhi.Visible = true;


                        //把可用的权限组弄上
                        //调用执行方法获取数据
                        DataTable dtdtD   = new DataTable();
                        object[]  re_dsiD = IPC.Call("获取菜单数据", new object[] { "auth_group", 0, 1 });
                        if (re_dsiD[0].ToString() == "ok")
                        {
                            //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
                            dtdtD = (DataTable)re_dsiD[1];
                            Uingroups.DataSource     = dtdtD;
                            Uingroups.DataTextField  = "SortNameTree";
                            Uingroups.DataValueField = "SortID";
                            Uingroups.DataBind();
                        }
                        else
                        {
                            errmsg.InnerHtml = re_dsiD[1].ToString();//向客户端输出错误字符串
                        }



                        //把下拉菜单默认值弄上
                        ee_UAid.Text       = ds.Tables["数据记录"].Rows[0]["UAid"].ToString();
                        ee_Uloginname.Text = ds.Tables["数据记录"].Rows[0]["Uloginname"].ToString();



                        UfinalUnumber.Text = ds.Tables["数据记录"].Rows[0]["UfinalUnumber1"].ToString() + "," + ds.Tables["数据记录"].Rows[0]["UfinalUnumber2"].ToString() + "," + ds.Tables["数据记录"].Rows[0]["UfinalUnumber3"].ToString() + "," + ds.Tables["数据记录"].Rows[0]["UfinalUnumber4"].ToString() + "," + ds.Tables["数据记录"].Rows[0]["UfinalUnumber5"].ToString();
                        //调用执行方法获取数据
                        DataSet  dsQ     = new DataSet();
                        object[] re_dsiQ = IPC.Call("获取所有已启用的权限枚举", new object[] { "隐藏开发专用" });
                        if (re_dsiQ[0].ToString() == "ok" && re_dsiQ[1] != null)
                        {
                            //这个就是得到远程方法真正的返回值,不同类型的,自行进行强制转换即可。
                            dsQ = (DataSet)re_dsiQ[1];

                            Unumber1.DataSource     = dsQ.Tables[0];
                            Unumber1.DataTextField  = "ANBaseName";
                            Unumber1.DataValueField = "ANBaseNumber";
                            Unumber1.DataBind();


                            Unumber2.DataSource     = dsQ.Tables[1];
                            Unumber2.DataTextField  = "ANBaseName";
                            Unumber2.DataValueField = "ANBaseNumber";
                            Unumber2.DataBind();

                            Unumber3.DataSource     = dsQ.Tables[2];
                            Unumber3.DataTextField  = "ANBaseName";
                            Unumber3.DataValueField = "ANBaseNumber";
                            Unumber3.DataBind();

                            Unumber4.DataSource     = dsQ.Tables[3];
                            Unumber4.DataTextField  = "ANBaseName";
                            Unumber4.DataValueField = "ANBaseNumber";
                            Unumber4.DataBind();

                            Unumber5.DataSource     = dsQ.Tables[4];
                            Unumber5.DataTextField  = "ANBaseName";
                            Unumber5.DataValueField = "ANBaseNumber";
                            Unumber5.DataBind();
                        }
                        else
                        {
                            errmsg.InnerHtml = re_dsiQ[0].ToString();//向客户端输出错误字符串
                        }

                        //给对应的地方赋值
                        Dictionary <string, string> dic_Unumber1 = AuthComm.GetEnumFormUnumber(ds.Tables["数据记录"].Rows[0]["Unumber1"].ToString());
                        foreach (KeyValuePair <string, string> kv in dic_Unumber1)
                        {
                            ListItem lt = Unumber1.Items.FindByValue(kv.Value);
                            if (lt != null)
                            {
                                lt.Selected = true;
                            }
                        }

                        Dictionary <string, string> dic_Unumber2 = AuthComm.GetEnumFormUnumber(ds.Tables["数据记录"].Rows[0]["Unumber2"].ToString());
                        foreach (KeyValuePair <string, string> kv in dic_Unumber2)
                        {
                            ListItem lt = Unumber2.Items.FindByValue(kv.Value);
                            if (lt != null)
                            {
                                lt.Selected = true;
                            }
                        }

                        Dictionary <string, string> dic_Unumber3 = AuthComm.GetEnumFormUnumber(ds.Tables["数据记录"].Rows[0]["Unumber3"].ToString());
                        foreach (KeyValuePair <string, string> kv in dic_Unumber3)
                        {
                            ListItem lt = Unumber3.Items.FindByValue(kv.Value);
                            if (lt != null)
                            {
                                lt.Selected = true;
                            }
                        }

                        Dictionary <string, string> dic_Unumber4 = AuthComm.GetEnumFormUnumber(ds.Tables["数据记录"].Rows[0]["Unumber4"].ToString());
                        foreach (KeyValuePair <string, string> kv in dic_Unumber4)
                        {
                            ListItem lt = Unumber4.Items.FindByValue(kv.Value);
                            if (lt != null)
                            {
                                lt.Selected = true;
                            }
                        }

                        Dictionary <string, string> dic_Unumber5 = AuthComm.GetEnumFormUnumber(ds.Tables["数据记录"].Rows[0]["Unumber5"].ToString());
                        foreach (KeyValuePair <string, string> kv in dic_Unumber5)
                        {
                            ListItem lt = Unumber5.Items.FindByValue(kv.Value);
                            if (lt != null)
                            {
                                lt.Selected = true;
                            }
                        }

                        string[] groupstr = ds.Tables["数据记录"].Rows[0]["Uingroups"].ToString().Split(',');
                        for (int i = 0; i < groupstr.Count(); i++)
                        {
                            if (groupstr[i].Trim() != "")
                            {
                                ListItem lt = Uingroups.Items.FindByValue(groupstr[i]);
                                if (lt != null)
                                {
                                    lt.Selected = true;
                                }
                            }
                        }
                    }
                    else
                    {
                        errmsg.InnerHtml = ds.Tables["返回值单条"].Rows[0]["提示文本"].ToString();
                    }
                }
                else
                {
                    errmsg.InnerHtml = re_dsi[1].ToString();
                }
            }
        }
    }
Exemple #9
0
 protected void Button4_Click(object sender, EventArgs e)
 {
     Label4.Text = "__" + string.Join(",", AuthComm.GetEnumFormUnumber("0").Values.ToArray()) + "__";
 }
Exemple #10
0
    protected void Page_Load(object sender, EventArgs e)
    {
        /*
         * 数据要求:
         * 每个菜单项必须有个唯一ID,ID中不能含有“[”或“]”或“|”或其他正则表达式特殊字符
         * 尽量不要超过五级,第五级显示上不能再补空位了,会不好看。
         * 每个菜单路径不能互相重复,最好也不要有包含关系。
         */

        //读取后台菜单
        DataTable dtmenu = new DataTable();

        try
        {
            dtmenu.ReadXml(Server.MapPath("/xml/auth_menu_b.xml"));
        }
        catch
        {
            return;
        }

        if (UserSession.是否超管 == "0")
        {
            //读取有效权限枚举
            DataSet dsenum = new DataSet();
            try
            {
                dsenum.ReadXml(Server.MapPath("/xml/auth_enum_number_ANused.xml"));
            }
            catch
            {
                return;
            }

            //获取用户具备权限的枚举(后台菜单权限)
            string in_str = "(";
            Dictionary <string, string> user_have_enum = AuthComm.GetEnumFormUnumber(UserSession.最终权值_后台菜单权限);
            foreach (KeyValuePair <string, string> kv in user_have_enum)
            {
                in_str = in_str + "'" + kv.Value + "',";
            }
            in_str = in_str + "'大补丸')";

            //根据权限枚举,找到要剔除的菜单id(生成字符串del_str) 和 不剔除的菜单 (生成字符串no_del_str)
            DataRow[] dr_need_del = dsenum.Tables["Unumber1"].Select("ANBaseNumber not in " + in_str);
            del_str = "(";
            foreach (DataRow dr in dr_need_del)
            {
                del_str = del_str + dr["ANextendID"].ToString() + ",";
            }
            del_str = del_str + "-1)";

            DataRow[] dr_no_del  = dtmenu.Select("SortID not in " + del_str + " and m_show='不隐藏'");
            string    no_del_str = "(";
            foreach (DataRow dr in dr_no_del)
            {
                DataRow[] dr_tttt = dtmenu.Select("SortParentPath like '%," + dr["SortID"].ToString() + ",%'");
                if (dr_tttt.Length == 0)
                {
                    no_del_str = no_del_str + dr["SortID"].ToString() + ",";
                }
            }
            no_del_str = no_del_str + "-1)";

            //有可能要删除的全部上级菜单id集合(tempDic_parentsID_maybe_del)
            DataRow[] dr_may_beneed_del_p = dtmenu.Select("SortID in " + del_str);
            string    parentsID_maybe_del = "";
            foreach (DataRow dr in dr_may_beneed_del_p)
            {
                parentsID_maybe_del = parentsID_maybe_del + dr["SortParentPath"].ToString();
            }

            Dictionary <string, string> tempDic_parentsID_maybe_del = new Dictionary <string, string>();
            string[] tt = parentsID_maybe_del.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < tt.Length; i++)
            {
                tempDic_parentsID_maybe_del[tt[i]] = "";
            }


            //没有被剔除的菜单所隶属的全部上级菜单id集合,都是绝对不能删除的(tt2)。
            DataRow[] dr_never_del_p      = dtmenu.Select("SortID in " + no_del_str);
            string    parentsID_never_del = "";
            foreach (DataRow dr in dr_never_del_p)
            {
                parentsID_never_del = parentsID_never_del + dr["SortParentPath"].ToString();
            }
            string[] tt2 = parentsID_never_del.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

            //在有可能要剔除的菜单中去掉绝对不能被剔除的,就是一定要被剔除的。
            for (int i = 0; i < tt2.Length; i++)
            {
                tempDic_parentsID_maybe_del.Remove(tt2[i]);
            }

            //生成一定要被剔除的select条件字符串(del_str_parents)(此时的tempDic_parentsID_maybe_del已经变成了一定要被剔除的)
            del_str_parents = "(";
            foreach (KeyValuePair <string, string> kv in tempDic_parentsID_maybe_del)
            {
                del_str_parents = del_str_parents + kv.Key + ",";
            }
            del_str_parents = del_str_parents + "-1)";
        }
        else
        {
            del_str         = "(-1)";
            del_str_parents = "(-1)";
        }



        //处理菜单
        menuallhtml = "";
        DataRow[] dr_rootnotes = dtmenu.Select("SortParentID=0 and m_show='不隐藏' and SortID not in " + del_str + " and SortID not in " + del_str_parents, "SortOrder asc");
        LoadDataToTreeView(dtmenu, dr_rootnotes, true, "0", "首页");
        //依据追溯数据替换激活和打开标记
        menuallhtml      = Regex.Replace(menuallhtml, @"\[(active)\[(" + s_daohang_ID + @")\]\]", "active");
        menuallhtml      = Regex.Replace(menuallhtml, @"\[(open)\[(" + s_daohang_ID + @")\]\]", " open");
        menuallhtml      = Regex.Replace(menuallhtml, @"\[(active|open)\[(.*?)\]\]", "");
        menuUL.InnerHtml = menuallhtml;

        //改写导航文字
        ArrayList al = new ArrayList();

        al.AddRange(s_daohang_name.Split('|'));
        RaiseEvent_OnNeedLoadData(al, "");
    }