private bool ValidateController(System.Web.Http.Controllers.HttpActionContext actionContext) { t_bas_user userInfo = (t_bas_user)UserSession.Get("UserInfo"); var actionName = actionContext.ActionDescriptor.ActionName; var controllerName = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName; webDmsEntities db = new webDmsEntities(); var count = db.view_menu.Where(w => w.ControllerName.ToString().ToLower() == controllerName.ToLower() && w.UserID == userInfo.UserID).Count(); return(count > 0 ? true : false); }
/// <summary> /// /// </summary> /// <param name="loginData"></param> /// <returns></returns> public object Login(getLogin loginData) { t_bas_user tBasUser = null; if (!ValidateUser(loginData.strUser, loginData.strPwd, out tBasUser)) { return(new { bRes = false, message = "账号或密码不正确!" }); } FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, tBasUser.Code, DateTime.Now, DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", tBasUser.Code, tBasUser.Password), FormsAuthentication.FormsCookiePath); webDmsEntities db = new webDmsEntities(); //var homeOjb = new object[] { new { path = "/", iconCls = "fa fa-home", leaf = true, children = new object[] { new { path = "/index", MenuPath = "index", meta = new { name = "主页", button = new string[] { }.ToList() } } } } }; var list = db.view_menu.Where <view_menu>(p => p.UserID.ToString() == tBasUser.UserID.ToString() && p.ParentCode == "&").Select(s => new { path = "/", name = s.Name, url = "", meta = new { name = s.Name, button = new string[0] { }.ToList() }, Xh = s.Sequence, MenuID = s.Code, iconCls = s.ICON, children = db.view_menu.Where <view_menu>(p1 => p1.UserID.ToString() == tBasUser.UserID.ToString() && p1.ParentCode == s.Code).Select(s1 => new { path = "/" + s1.URL, url = s1.URL, name = s1.Name, meta = new { name = s1.Name, button = new string[] { "save", "cancle", "new", "audit" }.ToList(), isButton = false }, MenuPath = s1.URL.Replace("_", "/"), Xh = s1.Sequence, MenuID = s1.Code }).OrderBy(o => o.Xh).ThenBy(o => o.MenuID).ToList() }).OrderBy(o => o.Xh).ThenBy(o => o.MenuID).ToList(); var tempList = list.ToList(); //返回登录结果、用户信息、用户验证票据信息 var tSysCompany = db.t_sys_company.Where(w => w.CorpID == tBasUser.CorpID); string trademark = tSysCompany.Join(db.t_bas_company, a => a.CorpID, b => b.CorpID, (a, b) => b.TradeMark).FirstOrDefault(); string TradeMark = "/" + VirtualPath + "/" + UploadImgPath + "/" + trademark; //获取当前项目所在目录 string avatar = "/" + VirtualPath + "/" + UploadImgPath + "/" + tBasUser.Photo; //获取当前项目所在目录 var oUser = new UserInfo { bRes = true, user = new { name = tBasUser.Name, avatar = avatar, TradeMark = TradeMark }, Ticket = FormsAuthentication.Encrypt(ticket), menu = tempList }; //将经销商权限保存在session中 UserSession.Add("CompanyRightsID", tSysCompany.FirstOrDefault().RightsID); //HttpContext.Current.Session["CompanyRightsID"] = tSysCompany.FirstOrDefault().RightsID; return(oUser); }
//校验用户名密码(正式环境中应该是数据库校验) private bool ValidateUser(string strUser, string strPwd) { webDmsEntities db = new webDmsEntities(); var list = db.Sys_User.FirstOrDefault(p => p.LoginName == strUser && p.LoginPassword == strPwd); if (list != null) { HttpContext.Current.Session["userId"] = list.UserID; return(true); } else { return(false); } }
/// <summary> /// 用户登录 /// </summary> /// <param name="strUser"></param> /// <param name="strPwd"></param> /// <returns></returns> public object Login(getLogin loginData) { if (!ValidateUser(loginData.strUser, loginData.strPwd)) { return(new { bRes = false, message = "账号或密码不正确!" }); } FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(0, loginData.strUser, DateTime.Now, DateTime.Now.AddHours(1), true, string.Format("{0}&{1}", loginData.strUser, loginData.strPwd), FormsAuthentication.FormsCookiePath); webDmsEntities db = new webDmsEntities(); var UserInfo = db.Sys_User.Where(w => w.LoginName == loginData.strUser).FirstOrDefault(); var homeOjb = new object[] { new { path = "/", iconCls = "fa fa-home", leaf = true, children = new object[] { new { path = "/index", MenuPath = "index", meta = new { name = "主页", button = new string[] { }.ToList() } } } } }; var list = db.View_menu.Where <View_menu>(p => p.UserID.ToString() == UserInfo.UserID.ToString() && p.MenuParentID == 0).Select(s => new { path = "/", name = "", meta = new { name = s.MenuName, button = new string[0] { }.ToList() }, Xh = s.Xh, MenuID = s.MenuID, iconCls = s.MenuIcon, children = db.View_menu.Where <View_menu>(p1 => p1.MenuParentID == s.MenuID).Select(s1 => new { path = "/" + s1.MenuPath, name = s1.MenuName, meta = new { name = s1.MenuName, button = new string[] { "save", "cancle", "new" }.ToList(), isButton = false }, MenuPath = s1.MenuPath.Replace("_", "/"), Xh = s1.Xh, MenuID = s1.MenuID }).OrderBy(o => o.Xh).ThenBy(o => o.MenuID).ToList() }).OrderBy(o => o.Xh).ThenBy(o => o.MenuID).ToList(); var tempList = homeOjb.Concat(list).ToList(); //返回登录结果、用户信息、用户验证票据信息 var oUser = new UserInfo { bRes = true, UserName = loginData.strUser, Password = loginData.strPwd, user = new { name = UserInfo.RealName, avatar = UserInfo.Avatar }, Ticket = FormsAuthentication.Encrypt(ticket), menu = tempList }; //将身份信息保存在session中,验证当前请求是否是有效请求 HttpContext.Current.Session[loginData.strUser] = oUser; return(oUser); }
//校验用户名密码(正式环境中应该是数据库校验) private bool ValidateUser(string strUser, string strPwd, out t_bas_user userinfo) { webDmsEntities db = new webDmsEntities(); string password = Sha1Encrypt(strPwd); var list = db.t_bas_user.FirstOrDefault(p => p.Code == strUser && p.Password == password); userinfo = list; if (list != null) { //HttpContext.Current.Session["UserInfo"] = list; UserSession.Add("UserInfo", list); return(true); } else { return(false); } }
public static int AutoIncrementResult(string Code, out string CodeResult) { DateTime dt = DateTime.Now; webDmsEntities db = new webDmsEntities(); DBHelper <t_serial_number_detail> db_serial_detail = new DBHelper <t_serial_number_detail>(); var CorpID = ((t_bas_user)UserSession.Get("UserInfo")).CorpID; var UserID = ((t_bas_user)UserSession.Get("UserInfo")).UserID; var serial_list = db.t_serial_number.Where(w => w.Code == Code).FirstOrDefault(); int length = serial_list.EndingNumber.ToString().Length; long SerialID = serial_list.SerialID; var serial_list_detail = db.t_serial_number_detail.Where(w => w.CorpID == CorpID && w.SerialID == SerialID).FirstOrDefault(); var result = 0; if (serial_list_detail == null) { serial_list_detail = new t_serial_number_detail() { CorpID = CorpID, SerialID = SerialID, FirstNumber = serial_list.StartingNumber, IncrementByNumber = serial_list.IncrementByNumber, LastDateUsed = dt, LastNumber = serial_list.EndingNumber, NumberDate = dt, WarningNumber = serial_list.WarningNumber, LastNumberUsed = serial_list.IncrementByNumber, NumberLength = serial_list.EndingNumber.ToString().Length }; result = db_serial_detail.Add(serial_list_detail); } else { serial_list_detail.SDID = serial_list_detail.SDID; serial_list_detail.CorpID = serial_list_detail.CorpID; serial_list_detail.SerialID = serial_list_detail.SerialID; serial_list_detail.FirstNumber = serial_list.StartingNumber; serial_list_detail.IncrementByNumber = serial_list.IncrementByNumber; serial_list_detail.LastDateUsed = dt; serial_list_detail.LastNumber = serial_list.EndingNumber; serial_list_detail.NumberDate = dt; serial_list_detail.WarningNumber = serial_list.WarningNumber; serial_list_detail.LastNumberUsed = serial_list_detail.LastNumberUsed + serial_list.IncrementByNumber; serial_list_detail.NumberLength = serial_list.EndingNumber.ToString().Length; result = db_serial_detail.Update(serial_list_detail); } switch (serial_list.MaintainMethod) { case "0": CodeResult = serial_list.Prefix + serial_list_detail.LastNumberUsed.ToString().PadLeft(length, '0'); break; case "1": CodeResult = serial_list.Prefix + dt.ToString("yyMM") + serial_list_detail.LastNumberUsed.ToString().PadLeft(length, '0'); break; case "2": CodeResult = serial_list.Prefix + dt.ToString("yyMM") + serial_list_detail.LastNumberUsed.ToString().PadLeft(length, '0'); break; case "3": CodeResult = serial_list.Prefix + dt.ToString("yyMMdd") + serial_list_detail.LastNumberUsed.ToString().PadLeft(length, '0'); break; default: CodeResult = serial_list.Prefix + serial_list_detail.LastNumberUsed.ToString().PadLeft(length, '0'); break; } return(result); }