public JsonResult AddAdmSystemUser(Models.api_user api_User)
        {
            var user = dbuser.FirstOrDefault(u => u.user_name == api_User.user_name);

            if (user != null)
            {
                return(Json(new
                {
                    success = false,
                    message = "此用户已存在"
                }, JsonRequestBehavior.AllowGet));
            }
            if (api_User.id > 0)
            {
                dbuser.Update(api_User);
            }
            else
            {
                api_User.user_id     = Guid.NewGuid().ToString();
                api_User.create_time = DateTime.UtcNow;
                dbuser.Insert(api_User);
            }
            List <string> userroleguids = new List <string>();

            if (api_User.user_roles != null && api_User.user_roles.Length > 0 && api_User.user_roles != "")
            {
                userroleguids = api_User.user_roles.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
            }
            int mx = dbuser.SaveChanges();
            List <Models.api_user_role> api_User_Roles = dbroleUser.GetAll(u => u.user_guid == api_User.user_id, u => u.id > 0);

            if (api_User_Roles != null && api_User_Roles.Count > 0)
            {
                api_User_Roles.ForEach(u => dbroleUser.Delete(u));
                mx += dbroleUser.SaveChanges();
            }
            userroleguids.ForEach(u => { dbroleUser.Insert(new Models.api_user_role()
                {
                    user_guid = api_User.user_id, role_guid = u
                }); mx += dbroleUser.SaveChanges(); });
            if (mx > 0)
            {
                return(Json(new
                {
                    success = true,
                    data = mx,
                    message = "保存成功"
                }, JsonRequestBehavior.AllowGet));
            }
            return(Json(new
            {
                success = false,
                data = mx,
                message = "保存失败,请重试"
            }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetApiUserById(string guid)
        {
            Models.api_user api_User      = dbuser.GetAll(u => u.user_id == guid, u => u.id).FirstOrDefault();
            List <string>   userroleguids = new List <string>();

            dbroleUser.GetAll(u => u.user_guid == guid, u => u.id).ForEach(m => userroleguids.Add(m.role_guid));
            List <Models.api_role> api_RolesAll = dbrole.GetList <Models.api_role>(u => u.id > 0);

            return(Json(new
            {
                success = true,
                message = "请求成功",
                dataapiuser = api_User,
                dataUserRoleGuids = userroleguids,
                dataAllRoles = api_RolesAll
            }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
 /// <summary>
 /// 保存登录状态
 /// </summary>
 /// <param name="user"></param>
 private void CreateSession(Models.api_user user)
 {
     //entity.pwd = "";
     HttpContext.Session["admin"] = user;
     HttpContext.Session.Timeout  = 30000;
 }
Esempio n. 4
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //获取 controllerName 名称
            string controllerName = filterContext.RouteData.Values["controller"].ToString();
            //获取ACTION 名称
            string actionName = filterContext.RouteData.Values["action"].ToString();



            //判断区域-Admin
            var areaName = filterContext.Controller.ControllerContext.RouteData.DataTokens["area"];

            if (areaName != null)
            {
                if (areaName.ToString().ToLower() == "admin")
                {
                    //当前访问为 admin/login/index 时
                    if (controllerName.ToLower() == "login")
                    {
                        if (actionName.ToLower() == "index" || actionName.ToLower() == "login")
                        {
                            return;
                        }
                    }

                    //判断管理员账号是否登录;
                    Models.api_user api_User = (Models.api_user)filterContext.HttpContext.Session["admin"];
                    if (api_User == null)
                    {
                        //跳转到管理员登录页面;
                        filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "Login", action = "Index", area = "Admin", ReturnUrl = filterContext.HttpContext.Request.Url }));
                    }
                }
                if (areaName.ToString().ToLower() == "data")
                {
                    //当前访问为 admin/login/index 时
                    if (controllerName.ToLower() == "login")
                    {
                        if (actionName.ToLower() == "apilogin" || actionName.ToLower() == "login" || actionName.ToLower() == "loginsession")
                        {
                            return;
                        }
                    }

                    //判断管理员账号是否登录;
                    Models.api_user ec_admin_account = (Models.api_user)filterContext.HttpContext.Session["admin"];
                    if (ec_admin_account == null)
                    {
                        if (filterContext.HttpContext.Request.IsAjaxRequest())
                        {
                            //filterContext.HttpContext.Response.StatusCode = 401;//这个可以指定为其他的
                            filterContext.Result = new JsonResult
                            {
                                //Data = new
                                //{
                                //    ErrorMessage = "您长时间没有操作,请重新登录!"
                                //}, //这样使用,最终的结果判断时,xhr.responseText为"{ErrorMessage:"您长时间没有操作,请重新登录!"}",还需要Json转化一下

                                Data = new{ sessionstatus = "timeout", msg = "您长时间没有操作,请重新登录!" },
                                JsonRequestBehavior = JsonRequestBehavior.AllowGet
                            };
                        }
                        //filterContext.RequestContext
                        //filterContext.
                        //如果是ajax请求响应头会有,x - requested - with;
                        //if (req.getHeader("x-requested-with") != null && req.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))
                        //{

                        //    rep.setHeader("sessionstatus", "timeout");//在响应头设置session状态
                        //    rep.getWriter().print("登录超时!"); //打印一个返回值,没这一行,在tabs页中无法跳出(导航栏能跳出),具体原因不明
                        //}

                        //filterContext.ActionParameters.Add("sessionstatus", "sessiontimeout");
                        //跳转到管理员登录页面;
                        //filterContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "Login", action = "LoginSession", area = "data", ReturnUrl = filterContext.HttpContext.Request.Url }));
                    }
                }
            }



            return;
            //base.OnActionExecuting(filterContext);
        }