Esempio n. 1
0
        /// <summary>
        /// 获取某个角色的权限 数据不要乱改啊!!
        /// </summary>
        /// <param name="Id">角色的Id</param>
        /// <returns></returns>
        public string GetManeOP(string Id)
        {
            string                   menus = " [\n";
            var                      sql   = RMS_MenusSet.SelectAll();
            List <RMS_Menus>         list  = RDBiz.GetOwnList <RMS_Menus>(sql);                                                                                                 //所有的菜单集
            List <RMS_Buttons>       listControlButtons  = RDBiz.GetOwnList <RMS_Buttons>(RMS_ButtonsSet.SelectAll());                                                          //所有的按钮
            List <RMS_RoleManus>     listRoleColumns     = RDBiz.GetOwnList <RMS_RoleManus>(RMS_RoleManusSet.SelectAll().Where(RMS_RoleManusSet.RoleId.Equal(Id)));             //这个角色已经添加的菜单
            List <V_RoleManuButtons> listRoleMenuButtons = RDBiz.GetOwnList <V_RoleManuButtons>(V_RoleManuButtonsSet.SelectAll().Where(V_RoleManuButtonsSet.RoleId.Equal(Id))); //这个角色已经添加的角色按钮

            for (int i = 0; i < list.Count; i++)
            {
                if (list.Find(p => p.Id == list[i].ParentManuId) == null)//此项没有父级
                {
                    menus += "{  \"MenuId\":\"" + list[i].Id + "\",";
                    menus += string.Format("  \"Name\":\"{0}\",", list[i].ManuName);
                    menus += string.Format("  \"iconCls\":\"{0}\",", list[i].Icon);
                    string        ControlId_Browse = "0";
                    RMS_RoleManus rcItem           = listRoleColumns.Find(p => p.ManuId.Equals(list[i].Id));

                    if (rcItem != null)
                    {
                        ControlId_Browse = "1";//如果存在
                    }
                    menus += string.Format("  \"ControlId_Browse\":\"{0}\",", ControlId_Browse);
                    foreach (RMS_Buttons dd in listControlButtons)//添加列的数据
                    {
                        string Ishave = "0";


                        V_RoleManuButtons rmbItem = listRoleMenuButtons.Find(p => p.Id.Equals(dd.Id) && p.ManuId.Equals(list[i].Id));

                        if (rmbItem != null)
                        {
                            Ishave = "1";//如果角色有此按钮存在
                        }

                        menus += string.Format("\"ControlId_{0}\":\"{1}\",", dd.Id, Ishave);
                    }
                    menus += GetSonTreeManu(list, list[i], listControlButtons, listRoleColumns, listRoleMenuButtons);//添加children
                    menus += "},";
                }
            }
            menus = menus.Substring(0, menus.Length - 1);
            menus = menus + "]";

            return(menus);
        }
        //[ValidateAntiForgeryToken] 安全必须 外网出错 所需的防伪 Cookie“__RequestVerificationToken”不存在。 暂时去掉,待解决
        public ActionResult Index(LoginModel mode)
        {
            // if (ModelState.IsValid)

            ViewData["UserType"] = GenerateList();
            //if (Session["ValidateCode"] != null)
            //{
            #region  获取cookies
            //if (!string.IsNullOrEmpty(Request.Cookies["UserData"]["AdminUserInfo"]))//Cookies保存 获取解析
            //{
            //    string dataj = Request.Cookies["UserData"]["AdminUserInfo"];
            //    UserData = JsonHelper.FromJson<AdminUserInfo>(dataj);
            //    if (UserData != null)
            //    {
            //        return RedirectToAction("index", "home");
            //    }
            //}
            #endregion

            string Vcode = Session["ValidateCode"].ToString();
            if (mode.VCode != null && mode.VCode.Trim().Equals(Vcode))//验证码
            {
                UserData = null;
                List <V_UserRole> adminRole = null;
                bool IsHaveP = false; //是否有权限登录
                mode.UserType = "1";  //
                #region  根据类型登录
                switch (mode.UserType)
                {
                case "1"://账号密码登录
                    var sql = V_UserRoleSet.SelectAll().Where(V_UserRoleSet.LoginName.Equal(mode.LoginName).And(V_UserRoleSet.Password.Equal(mode.Password)));
                    adminRole = URBiz.GetOwnList <V_UserRole>(sql);
                    break;

                case "0"://姓名登录
                    var sql0 = V_UserRoleSet.SelectAll().Where(V_UserRoleSet.LoginName.Equal(mode.LoginName).And(V_UserRoleSet.UserType.Equal(0)));
                    adminRole = URBiz.GetOwnList <V_UserRole>(sql0);
                    if (adminRole != null && adminRole.Count > 0)//检查是否存在,不存在就添加,给登录用户的角色
                    {
                        break;
                    }
                    else
                    {
                        RMS_User item = new RMS_User();
                        item.Id         = Guid.NewGuid();
                        item.LoginName  = mode.LoginName;
                        item.UserType   = 0;
                        item.CreateTime = DateTime.Now;
                        item.ModifyTime = DateTime.Now;
                        uBiz.Add(item);

                        List <RMS_Role> listRole = URBiz.GetOwnList <RMS_Role>(RMS_RoleSet.SelectAll().Where(RMS_RoleSet.RoleTypes.Equal(0)));//所有的姓名登录角色

                        RMS_UserRole urItem = new RMS_UserRole();
                        urItem.Id     = Guid.NewGuid();
                        urItem.UserId = item.Id;
                        urItem.RoleId = listRole[0].Id;
                        urBiz.Add(urItem);

                        adminRole = URBiz.GetOwnList <V_UserRole>(sql0);
                    }



                    break;

                case "2"://身份证登录
                    var sql2 = V_UserRoleSet.SelectAll().Where(V_UserRoleSet.LoginName.Equal(mode.LoginName).And(V_UserRoleSet.UserType.Equal(2)));
                    adminRole = URBiz.GetOwnList <V_UserRole>(sql2);
                    if (adminRole != null && adminRole.Count > 0)//检查是否存在,不存在就添加,给身份证用户的角色
                    {
                        break;
                    }
                    else
                    {
                        RMS_User item = new RMS_User();
                        item.Id         = Guid.NewGuid();
                        item.LoginName  = mode.LoginName;
                        item.UserType   = 2;
                        item.CreateTime = DateTime.Now;
                        item.ModifyTime = DateTime.Now;
                        uBiz.Add(item);

                        List <RMS_Role> listRole = URBiz.GetOwnList <RMS_Role>(RMS_RoleSet.SelectAll().Where(RMS_RoleSet.RoleTypes.Equal(2)));//所有的姓名登录角色

                        RMS_UserRole urItem = new RMS_UserRole();
                        urItem.Id     = Guid.NewGuid();
                        urItem.UserId = item.Id;
                        urItem.RoleId = listRole[0].Id;
                        urBiz.Add(urItem);

                        adminRole = URBiz.GetOwnList <V_UserRole>(sql2);
                    }
                    break;

                default:

                    break;
                }

                #endregion

                if ((adminRole != null && adminRole.Count > 0)) // 账号是否存在,添加权限配置
                {
                    #region 存用户数据

                    UserData           = new AdminUserInfo();
                    UserData.UserTypes = int.Parse(adminRole[0].UserType.ToString());
                    // UserData.adminUserInfo = adminRole[0];
                    UserData.Id       = adminRole[0].Id;
                    UserData.UserName = adminRole[0].LoginName;
                    UserData.RoleId   = adminRole[0].RoleId;
                    UserData.Password = adminRole[0].Password;

                    if (adminRole[0].DepartmentId != null)
                    {
                        var            dpsql  = RMS_DepartmentSet.SelectAll().Where(RMS_DepartmentSet.Id.Equal(adminRole[0].DepartmentId));
                        RMS_Department dpItem = dpBiz.GetEntity(dpsql);
                        if (dpItem != null)
                        {
                            UserData.DepartmentId   = dpItem.Id;
                            UserData.DepartmentName = dpItem.Name;
                        }
                    }
                    IsHaveP = true;

                    #endregion

                    #region  获取权限
                    if (IsHaveP)                                                                                                                                                                //可以登录
                    {
                        List <V_RoleManus>       manus      = URBiz.GetOwnList <V_RoleManus>(V_RoleManusSet.SelectAll().Where(V_RoleManusSet.RoleId.Equal(UserData.RoleId)));                   //所有的菜单
                        List <V_RoleManuButtons> buttons    = URBiz.GetOwnList <V_RoleManuButtons>(V_RoleManuButtonsSet.SelectAll().Where(V_RoleManuButtonsSet.RoleId.Equal(UserData.RoleId))); //角色拥有的菜单的所有按钮
                        List <V_MenuButtons>     AllButtons = URBiz.GetOwnList <V_MenuButtons>(V_MenuButtonsSet.SelectAll());                                                                   //所有菜单的所有按钮
                        List <Manu> ListManus = new List <Manu>();
                        if (manus != null && manus.Count > 0)
                        {
                            foreach (V_RoleManus item in manus)
                            {
                                Manu OneManu = new Manu();
                                OneManu.manuInfo      = item;
                                OneManu.ListButtons   = buttons.FindAll(p => p.ManuId.Equals(item.ManuId)).OrderBy(p => p.OrderNo).ToList();
                                OneManu.ManuAllButton = AllButtons.FindAll(p => p.ManuId.Equals(item.ManuId));
                                ListManus.Add(OneManu);
                            }
                            UserData.ListManus = ListManus;
                        }

                        #region   存cookies
                        //string datajson = JsonHelper.ToJson(UserData);
                        //HttpCookie cookie = new HttpCookie("UserData");//初使化并设置Cookie的名称
                        //DateTime dt = DateTime.Now;
                        //TimeSpan ts = new TimeSpan(0, 1, 0, 0, 0);//过期时间为1分钟
                        //cookie.Expires = dt.Add(ts);//设置过期时间

                        //cookie.Values.Add("AdminUserInfo", datajson);
                        //Response.AppendCookie(cookie);

                        #endregion


                        return(RedirectToAction("index", "home"));
                    }

                    #endregion
                }
                else
                {
                    //  return RedirectToAction("index", "Login");
                    // 如果我们进行到这一步时某个地方出错,则重新显示表单
                    ViewData["IsShowAlert"] = true;
                    ViewData["Alert"]       = "账号或者密码有误";
                }
            }
            else
            {
                ViewData["IsShowAlert"] = true;
                ViewData["Alert"]       = "验证码有误";
            }
            return(View());
        }
Esempio n. 3
0
        //[ValidateAntiForgeryToken] 安全必须 外网出错 所需的防伪 Cookie“__RequestVerificationToken”不存在。 暂时去掉,待解决
        public ActionResult Index(LoginModel mode)
        {
            // if (ModelState.IsValid)

            ViewData["UserType"] = GenerateList();
            if (Session["ValidateCode"] != null)
            {
                //if (Request.Cookies["User"] != null)//Cookies保存 获取解析
                //{
                //    HttpCookie cookie = new HttpCookie("User");//初使化并设置Cookie的名称
                //    DateTime dt = DateTime.Now;
                //    TimeSpan ts = new TimeSpan(0, 1, 0, 0, 0);//过期时间为1分钟
                //    cookie.Expires = dt.Add(ts);//设置过期时间
                //    string info = JsonHelper.ToJson(UserData.ListManus, true);
                //    string manuInfo = Server.HtmlEncode(info);
                //    cookie.Values.Add("Manus", manuInfo);

                //    string UserDataString = Server.HtmlEncode(Request.Cookies["User"]["UserInfo"]);
                //    string ManusString = Server.HtmlEncode(Request.Cookies["User"]["Manus"]);
                //    V_UserRole Rmodel = JsonHelper.FromJson<V_UserRole>(UserDataString);
                //}


                string Vcode = Session["ValidateCode"].ToString();
                if (mode.VCode.Trim().Equals(Vcode))//验证码
                {
                    UserData = null;
                    List <V_UserRole>        adminRole = null;
                    List <v_TS_ShopUserRole> shopRole  = null;
                    bool IsHaveP = false;     //是否有权限登录
                    if (mode.UserType == "0") //根据用户类型去找数据
                    {
                        var sql = V_UserRoleSet.SelectAll().Where(V_UserRoleSet.LoginName.Equal(mode.LoginName).And(V_UserRoleSet.Password.Equal(mode.Password)));
                        adminRole = URBiz.GetOwnList <V_UserRole>(sql);
                    }
                    else
                    {
                        var sql = v_TS_ShopUserRoleSet.SelectAll().Where(v_TS_ShopUserRoleSet.UserName.Equal(mode.LoginName).And(v_TS_ShopUserRoleSet.Pwd.Equal(mode.Password)).And(v_TS_ShopUserRoleSet.isDeleted.Equal(0)));
                        shopRole = URBiz.GetOwnList <v_TS_ShopUserRole>(sql);
                    }

                    if ((adminRole != null && adminRole.Count > 0) || (shopRole != null && shopRole.Count > 0)) // 账号是否存在,添加权限配置
                    {
                        #region 存用户数据

                        if (mode.UserType == "0")// 商家为1 管理员为0 缓存用户信息
                        {
                            UserData           = new AdminUserInfo();
                            UserData.UserTypes = UserType.admin;
                            // UserData.adminUserInfo = adminRole[0];
                            UserData.Id       = adminRole[0].Id;
                            UserData.UserName = adminRole[0].LoginName;
                            UserData.RoleId   = adminRole[0].RoleId;
                            UserData.Password = adminRole[0].Password;
                            IsHaveP           = true;
                        }
                        else
                        {
                            if (shopRole[0].States <= 0)
                            {
                                ViewData["IsShowAlert"] = true;
                                ViewData["Alert"]       = "您的账号未审核通过,请联系管理员";
                            }
                            else
                            {
                                UserData           = new AdminUserInfo();
                                IsHaveP            = true;
                                UserData.UserTypes = UserType.ShopUser;
                                // UserData.shopUserInfo = shopRole[0];
                                UserData.Id       = shopRole[0].Id;
                                UserData.UserName = shopRole[0].UserName;
                                UserData.RoleId   = shopRole[0].RoleId;
                                UserData.Password = shopRole[0].Pwd;
                            }
                        }
                        #endregion

                        #region  获取权限
                        if (IsHaveP)                                                                                                                                                                //可以登录
                        {
                            List <V_RoleManus>       manus      = URBiz.GetOwnList <V_RoleManus>(V_RoleManusSet.SelectAll().Where(V_RoleManusSet.RoleId.Equal(UserData.RoleId)));                   //所有的菜单
                            List <V_RoleManuButtons> buttons    = URBiz.GetOwnList <V_RoleManuButtons>(V_RoleManuButtonsSet.SelectAll().Where(V_RoleManuButtonsSet.RoleId.Equal(UserData.RoleId))); //角色拥有的菜单的所有按钮
                            List <V_MenuButtons>     AllButtons = URBiz.GetOwnList <V_MenuButtons>(V_MenuButtonsSet.SelectAll());                                                                   //所有菜单的所有按钮
                            List <Manu> ListManus = new List <Manu>();
                            if (manus != null && manus.Count > 0)
                            {
                                foreach (V_RoleManus item in manus)
                                {
                                    Manu OneManu = new Manu();
                                    OneManu.manuInfo      = item;
                                    OneManu.ListButtons   = buttons.FindAll(p => p.ManuId.Equals(item.ManuId)).OrderBy(p => p.OrderNo).ToList();
                                    OneManu.ManuAllButton = AllButtons.FindAll(p => p.ManuId.Equals(item.ManuId));
                                    ListManus.Add(OneManu);
                                }
                                UserData.ListManus = ListManus;
                            }
                            return(RedirectToAction("index", "home"));
                        }

                        #endregion
                    }
                    else
                    {
                        //  return RedirectToAction("index", "Login");
                        // 如果我们进行到这一步时某个地方出错,则重新显示表单
                        ViewData["IsShowAlert"] = true;
                        ViewData["Alert"]       = "账号或者密码有误";
                    }
                }
                else
                {
                    ViewData["IsShowAlert"] = true;
                    ViewData["Alert"]       = "验证码有误";
                }
            }
            return(View());
        }