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)); }
/// <summary> /// 保存登录状态 /// </summary> /// <param name="user"></param> private void CreateSession(Models.api_user user) { //entity.pwd = ""; HttpContext.Session["admin"] = user; HttpContext.Session.Timeout = 30000; }
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); }