protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); //if (Session["userInfo"] == null) //{ // filterContext.HttpContext.Response.Redirect("/Login/Index"); //} bool isScuess = false; if (Request.Cookies["sessionID"] != null) { string sessionID = Request.Cookies["sessionID"].Value; object obj = MemcacheHelper.Get(sessionID); if (obj != null) { UserInfo userInfo = SerializeHelper.DeserializeToObject <UserInfo>(obj.ToString()); LoginUser = userInfo; //模拟滑动过期时间 MemcacheHelper.Set(sessionID, obj, DateTime.Now.AddMinutes(20)); isScuess = true; } } if (!isScuess) { filterContext.Result = Redirect("/Login/Index"); } }
public List <RespondGetAllEmployeeViewModel> GetAllEmployee(RequestWebViewData <RequestGetAllEnityDataViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <List <RespondGetAllEmployeeViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetAllEmployee"), #region ===================== CallBackFunc = () => { var parameter = new QueryEmployeeListParameter { SerialNumber = request.data.Keywords }; var dataList = this.mEmployeeDataAccess.GetAllEmployee(parameter); var respond = dataList.Select(item => new RespondGetAllEmployeeViewModel { EmpId = item.empid, SerialNumber = item.serialnumber, Name = item.name, Comment = item.comment, Spelling = item.pinyin }).ToList(); return respond; }, #endregion ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.CommonAjax, ExpiresAt = DateTime.Now.AddMinutes(30), ParamsKeys = new object[] { request.data.Keywords, this.mSigninUser.UserID } })); }
/// <summary> /// 获取配置文件内容比反序列化为T(永不过期) /// </summary> /// <param name="configFilePath">配置文件路径</param> /// <returns>配置对象</returns> public static T GetConfig <T>(string configFilePath) where T : class { var cacheKey = string.Concat(configFilePath, typeof(T).FullName, HttpContext.Current == null ? AppDomain.CurrentDomain.BaseDirectory.ToMD5String() : HttpContext.Current.Request.Url.Host); return(MemcacheHelper.Get(() => { T config; lock (GetLockObject(configFilePath)) { if (!Path.IsPathRooted(configFilePath)) { configFilePath = GetMapPath(configFilePath); } try { var xmlSerializer = new XmlSerializer(typeof(T)); using (var streamReader = new StreamReader(configFilePath)) { config = xmlSerializer.Deserialize(streamReader) as T; } } catch //(InvalidOperationException exception) { return null; } } return config; }, cacheKey, false)); }
public RespondWebViewData <List <RespondSystemParameterConfigViewModel> > GetSystemParameterConfigViewModels() { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <List <RespondSystemParameterConfigViewModel> > > { CacheKey = string.Format(PRE_CACHE_KEY, "GetSystemParameterConfigViewModels"), #region ======================== CallBackFunc = () => { var dataModels = this.mSystemParameterConfigDataAccess.GetSystemParameterConfigDataModels(); var viewModels = new RespondWebViewData <List <RespondSystemParameterConfigViewModel> > { rows = dataModels.Select(data => new RespondSystemParameterConfigViewModel { ParameterConfigName = data.ParameterConfigName, ParameterConfigValue = data.ParameterConfigValue }).ToList() }; return viewModels; }, #endregion ManageCacheKeyForKey = THISSERVICE_PRE_CACHE_KEY_MANAGE, ParamsKeys = new object[] { this.mSigninUser.UserID, this.mSigninUser.CompanySerialNum } })); }
public RespondWebViewData <RespondSystemParameterConfigViewModel> GetSystemParameterConfigViewModel(RequestWebViewData <RequestSystemParameterConfigViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <RespondSystemParameterConfigViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetSystemParameterConfigViewModel"), #region =================================================== CallBackFunc = () => { var kvConfig = this.BuildDictionay(); var value = kvConfig[request.data.ParameterConfigName]; return new RespondWebViewData <RespondSystemParameterConfigViewModel> { rows = value }; }, #endregion ManageCacheKeyForKey = THISSERVICE_PRE_CACHE_KEY_MANAGE, ParamsKeys = new object[] { request.data.ParameterConfigName, this.mSigninUser.CompanySerialNum } })); }
public ActionResult Index(string UName, string UPwd, string vcode) { string validateCode = Session["validateCode"]?.ToString(); if (string.IsNullOrEmpty(validateCode)) { return(Content("no:验证码错误")); } Session["validateCode"] = null; if (!validateCode.Equals(vcode, StringComparison.InvariantCultureIgnoreCase)) { return(Content("no:验证码错误")); } var userInfo = userInfoService.LoadEntities(u => u.UName == UName && u.UPwd == UPwd).FirstOrDefault(); if (userInfo == null) { return(Content("no:用户名或密码错误")); } //Session["userInfo"] = userInfo; string sessionID = Guid.NewGuid().ToString(); //将用户信息存在memcache中,过期时间20分钟 MemcacheHelper.Set(sessionID, SerializeHelper.SerializeToString(userInfo), DateTime.Now.AddMinutes(20)); Response.Cookies["sessionID"].Value = sessionID; return(Content("ok:验证通过")); }
public RespondWebViewData <RespondOnlineSigninUserViewModel> GetOnlineSigninUserByUserID_g(RequestOnlineSigninUserViewModel request) { return(MemcacheHelper.Get(() => { var parameter = new OnlineSigninUserParameter { SGuid = request.SGuid, UserIP = request.AddressIP }; var dataModel = this.mSiginUserDataAccess.GetOnlineSigninUserByUserID_g(parameter); if (dataModel == null) { return new RespondWebViewData <RespondOnlineSigninUserViewModel>(WebViewErrorCode.LoginRequired); } return new RespondWebViewData <RespondOnlineSigninUserViewModel> { rows = new RespondOnlineSigninUserViewModel { UserID = dataModel.userid, LoginName = dataModel.username, SGuid = dataModel.sguid, ExpTime = dataModel.exptime, UserIP = dataModel.userip } }; }, string.Format(preCacheKey, "GetOnlineSigninUserByUserID_g"), DateTime.Now.AddMinutes(WebConfigHelper.MemCachedExpTime()), false, request.SGuid, request.AddressIP)); }
public RespondWebViewData <RespondQueryEmployeeViewModel> GetEmployeeByEmpId(RequestWebViewData <RequestGetEmployeeByIdViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <RespondQueryEmployeeViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetEmployeeByEmpId"), #region ==================== CallBackFunc = () => { var respond = new RespondWebViewData <RespondQueryEmployeeViewModel> { rows = new RespondQueryEmployeeViewModel() }; var employee = this.mEmployeeDataAccess.GetemployeeDataModelById(request.data.EmpId); if (employee == null) { return respond; } if (employee.deleted == (short)CommonDeleted.Deleted || employee.status != (short)CommonStatus.Used) { return respond; } var totalScale = this.mSystemParameterConfigViewService.SystemParameterConfig()[SystemParameterConfigConst.TotalScale].ParameterConfigValue.ToInt16(); respond = new RespondWebViewData <RespondQueryEmployeeViewModel> { rows = new RespondQueryEmployeeViewModel { Address = employee.address, ChildNumber = employee.childnumber, ClassId = employee.classid, Comment = employee.comment, Deleted = employee.deleted, DepId = employee.depid, DepName = employee.depname, EmpId = employee.empid, LowestDiscount = employee.lowestdiscount, Mobile = employee.mobile, Name = employee.name, ParentId = employee.parentid, PreInAdvanceTotal = employee.preinadvancetotal.ToNumberString(totalScale), PrePayFeeTotal = employee.prepayfeetotal.ToNumberString(totalScale), SerialNumber = employee.serialnumber, Status = employee.status, Spelling = employee.pinyin, Sort = employee.sort } }; return respond; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(30), ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.BasicEmployee, ParamsKeys = new object[] { request.data.EmpId } })); }
public List <RespondHeadButtonsViewModel> QueryHeadButtonsViewModelsByMenuID(RequestHeadButtonsViewModel request) { //TODO 配置每个单据的按钮权限后需清除缓存 return(MemcacheHelper.Get(new RequestMemcacheParameter <List <RespondHeadButtonsViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "QueryHeadButtonsViewModelsByMenuID"), #region ==================================== CallBackFunc = () => { var parameter = new HeadButtonsParameter { MenuID = request.MenuID, UserId = this.mSigninUser.UserID }; var dataModels = this.mHeadButtonsDataAccess.QueryHeadButtonsViewModelsByMenuID(parameter); var viewModels = dataModels.Select(model => new RespondHeadButtonsViewModel { ButtonDisabled = model.ButtonDisabled, ButtonIconCls = model.ButtonIconCls, ButtonName = model.ButtonName, ButtonText = model.ButtonText }).ToList(); return viewModels; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(WebConfigHelper.MemCachedExpTime()), ManageCacheKeyForKey = THISSERVICE_PRE_CACHE_KEY_MANAGE, ParamsKeys = new object[] { request.MenuID, this.mSigninUser.UserID } })); }
public JsonResult ResetPassword(string active, ResetPwd resetPwd) { var data = new { code = 1, msg = "修改失败" }; if (!string.IsNullOrEmpty(active) && ModelState.IsValid) { if (TempData[Keys.ValidCode] == null || !TempData[Keys.ValidCode].ToString().Equals(resetPwd.Code, StringComparison.CurrentCultureIgnoreCase)) { data = new { code = 1, msg = "验证码错误" }; //Session[Keys.ValidCode] = null; return(Json(data)); } var obj = MemcacheHelper.Get(active); if (obj != null) { var user = SerializerHelper.DeserializeToObject <User>(obj.ToString()); if (user != null) { user.Login_Password = resetPwd.Password.Md5_32(); userService.EditEntity(user); if (userService.SaveChanges()) { data = new { code = 0, msg = "修改成功,请牢记新密码。" }; MemcacheHelper.Set(active, null, DateTime.Now.AddHours(-1)); } } } } return(Json(data)); }
public JsonResult ForgetPasswordEmail(string email) { var data = new { code = 1, msg = "邮件发送失败,请重试。" }; var user = userService.LoadEntity(u => u.Email.Equals(email, StringComparison.CurrentCultureIgnoreCase)); if (user != null) { var id = Guid.NewGuid().ToString("N"); var link = GlobalConfig.UrlPrefix + $"/account/resetpassword?active={id}"; var templetpath = Server.MapPath("~/Templates/RetrievePassword.txt"); NameValueCollection collection = new NameValueCollection(); var timespan = DateTime.Now.AddMinutes(10); collection.Add("ename", user.Nickname); collection.Add("link", link); collection.Add("expired", timespan.ToString("yyyy-MM-dd HH:mm:ss")); var body = TemplateHelper.BuildByFile(templetpath, collection); if (EmailHelper.Send(user.Email, "找回您的账户密码", body)) { MemcacheHelper.Set(id, SerializerHelper.SerializeToString(user), timespan); data = new { code = 0, msg = "重置密码链接已经发送到您的邮箱中了,请注意查收。" }; } } return(Json(data)); }
public ActionResult UserLogin() { string uName = Request["LoginCode"]; string uPwd = Request["LoginPwd"]; string code = Request["vCode"]; if (code == "###") { } else if (Session["ValidateCode"] == null || !code.Equals(Session["ValidateCode"])) { return(Content("error:验证码错误")); } var userInfo = UserInfoService.LoadEntites(o => o.UName == uName).FirstOrDefault(); if (userInfo == null) { return(Content("error:账户不存在")); } if (userInfo.Pwd != uPwd) { return(Content("error:密码错误")); } string loginID = Guid.NewGuid().ToString(); // 将用户的信息存到Session中 Session["UserInfo"] = userInfo; // 将用户的信息存到Cookie中 Response.Cookies["LoginID"].Value = loginID; // 将用户的信息存到Memcache中 MemcacheHelper.Set(loginID, SerializeHelper.SerializeToString(userInfo), DateTime.Now.AddMinutes(20)); return(Content("ok:登陆成功")); }
//身份验证 protected override void OnAuthorization(AuthorizationContext filterContext) { base.OnAuthorization(filterContext); bool isLogin = false; //判断Cookie中是否有对应数据 if (Request.Cookies["LData"] != null) { //有 string key = Request.Cookies["LData"].Value; object obj = MemcacheHelper.Get(key); if (obj != null) { //反序列化 UserLogin = SerializeHelper.DeserializeToObject <UserLoginViewModel>(obj.ToString()) as UserLoginViewModel; } if (UserLogin != null) { //登录信息正确 isLogin = true; } } if (!isLogin) { //未登录跳转到登录界面 filterContext.Result = Redirect(Url.Action("Index", "Login")); } }
/// <summary> /// Gets the data helper. /// <para>If MySQL DB dbType is "Mysql" dbConnString like "Server=127.0.0.1;Port=3306;Database=world;Uid=root;Pwd=123456;" </para> /// <para>If MsSql DB dbType is "SqlServer" dbConnString like "Server=127.0.0.1;Port=3306;Database=world;Uid=root;Pwd=123456;" </para> /// <para>If Sqlite DB dbType is "Sqlite" dbConnString like "Data Source=${app}\\testdb.db3" </para> /// </summary> public static IDataHelper GetDataHelper(string dbTypeName, string dbConnString) { return(MemcacheHelper <DataHelper> .ReadAndWrite("[" + dbTypeName + "][" + dbConnString + "]", () => { var driver = GetDriver(dbTypeName, dbConnString); return new DataHelper(driver); })); }
public RespondWebViewData <RespondQueryClientViewModel> GetClientByClientId(RequestWebViewData <RequestGetClientByIdViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <RespondQueryClientViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetClientByClientId"), #region ==================== CallBackFunc = () => { var respond = new RespondWebViewData <RespondQueryClientViewModel> { rows = new RespondQueryClientViewModel() }; var client = this.mClientDataAccess.GetclientDataModelById(request.data.ClientId); if (client == null) { return respond; } if (client.deleted == (short)CommonDeleted.Deleted || client.status != (short)CommonStatus.Used) { return respond; } respond = new RespondWebViewData <RespondQueryClientViewModel> { rows = new RespondQueryClientViewModel { Address = client.address, Alias = client.alias, ChildNumber = client.childnumber, ClassId = client.classid, ClientId = client.clientid, Comment = client.comment, Credits = client.credits.ToNumberString(5), LinkAddress = client.linkaddress, LinkMan = client.linkman, LinkTel = client.linktel, Name = client.name, ParentId = client.parentid, Spelling = client.pinyin, PriceMode = client.pricemode, SerialNumber = client.serialnumber, Sort = client.sort, ZipCode = client.zipcode } }; return respond; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(30), ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.BasicClient, ParamsKeys = new object[] { request.data.ClientId } })); }
public RespondWebViewData <RespondEditStorageViewModel> EditStorage(RequestWebViewData <RequestEditStorageViewModel> request) { var rData = request.data; if (this.mStorageDataAccess.CheckStorageIsExist(new QueryStorageListParameter { Name = rData.Name, SerialNumber = rData.SerialNumber, StorageId = rData.StorageId })) { return(new RespondWebViewData <RespondEditStorageViewModel>(WebViewErrorCode.ExistsDataInfo.ErrorCode, string.Format("名称为[{0}]或编号为[{1}]的仓库已经存在", rData.Name, rData.SerialNumber))); } var respond = new RespondWebViewData <RespondEditStorageViewModel>(WebViewErrorCode.Success); try { this.mDbConnection.ExecuteTransaction(tran => { var storage = this.mStorageDataAccess.GetstorageDataModelById(rData.StorageId); if (storage == null) { respond = new RespondWebViewData <RespondEditStorageViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } if (storage.deleted == (short)CommonDeleted.Deleted) { respond = new RespondWebViewData <RespondEditStorageViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } var data = new storageDataModel { alias = rData.Alias, comment = rData.Comment, name = rData.Name, PinYin = rData.Spelling, serialnumber = rData.SerialNumber, sort = rData.Sort, stoid = rData.StorageId, childcount = storage.childcount, classid = storage.classid, childnumber = storage.childnumber, deleted = storage.deleted, parentid = storage.parentid, status = storage.status }; this.mStorageDataAccess.Update(data, tran); MemcacheHelper.RemoveBy(ServiceMemcachedKeyManageConst.BasicStorage); //由于电脑配置不上mongodb固暂时先屏蔽掉此段mongodb的数据操作 //this.SaveMongoDbData("编辑往来客户资料", request, respond, this.GetType()); }); } catch (Exception exception) { respond = new RespondWebViewData <RespondEditStorageViewModel>(new ErrorCodeItem(WebViewErrorCode.Exception.ErrorCode, exception.Message)); } return(respond); }
public RespondWebViewData <RequestEditClientViewModel> EditClient(RequestWebViewData <RequestEditClientViewModel> request) { var rData = request.data; if (this.mClientDataAccess.CheckClientIsExist(new QueryClientListParameter { Name = rData.Name, SerialNumber = rData.SerialNumber, ClientId = rData.ClientId })) { return(new RespondWebViewData <RequestEditClientViewModel>(WebViewErrorCode.ExistsDataInfo.ErrorCode, string.Format("名称为[{0}]或编号为[{1}]的往来单位已经存在", rData.Name, rData.SerialNumber))); } var respond = new RespondWebViewData <RequestEditClientViewModel>(WebViewErrorCode.Success); this.mDbConnection.ExecuteTransaction(tran => { var client = this.mClientDataAccess.GetclientDataModelById(rData.ClientId); if (client == null) { respond = new RespondWebViewData <RequestEditClientViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } if (client.deleted == (short)CommonDeleted.Deleted) { respond = new RespondWebViewData <RequestEditClientViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } var data = new clientDataModel { address = rData.Address, alias = rData.Alias, clientid = rData.ClientId, comment = rData.Comment, credits = rData.Credits, linkaddress = rData.LinkAddress, linktel = rData.LinkTel, linkman = rData.LinkMan, name = rData.Name, pinyin = rData.Spelling, pricemode = rData.PriceMode, serialnumber = rData.SerialNumber, sort = rData.Sort, zipcode = rData.ZipCode, status = client.status, deleted = client.deleted, parentid = client.parentid, childnumber = client.childnumber, childcount = client.childcount, classid = client.classid }; this.mClientDataAccess.Update(data, tran); MemcacheHelper.RemoveBy(ServiceMemcachedKeyManageConst.BasicClient); //由于电脑配置不上mongodb固暂时先屏蔽掉此段mongodb的数据操作 //this.SaveMongoDbData("编辑往来客户资料", request, respond, this.GetType()); }); return(respond); }
public ActionResult UserLogin() { if (Response.Cookies["sessionId"].Value != null) { return(Content("ok:登录成功")); } else { string validateCode = Session["validateCode"] != null ? Session["validateCode"].ToString() : string.Empty; if (string.IsNullOrEmpty(validateCode)) { return(Content("no:验证码错误!!")); } Session["validateCode"] = null; string txtCode = Request["vCode"]; if (!validateCode.Equals(txtCode, StringComparison.InvariantCultureIgnoreCase)) { return(Content("no:验证码错误!!")); } string userName = Request["LoginCode"]; string userPwd = Request["LoginPwd"]; bool check = Request["Check"] == "checded" ? true : false; var userInfo = UserInfoService.LoadEntities(u => u.UName == userName && u.UPwd == userPwd).FirstOrDefault(); //根据用户名找用户 if (userInfo != null) { //Session["userInfo"] = userInfo; //这里用Memcache代替Session是因为一旦用户访问量大了一台机器无法满足 就要建立多台机器处理用户访问 如果用seeion保存用户数据 只能保存在一台机器中 如果用户下次请求被其他机器接收 会检测不到用户数据 用户有得重新登录 而Membercache中数据可以在多台机器中共享 (这就是分布式缓存的一种应用) //产生一个GUID值作为Memache的键. string sessionId = Guid.NewGuid().ToString(); //这里报错了,可能是生成UserInfo的T4模板没有修改加上[JsonIgnore] 序列号不了后面几个复杂类型数据 MemcacheHelper.Set(sessionId, SerializeHelper.SerializeToString(userInfo), DateTime.Now.AddMinutes(20)); //将登录用户信息存储到Memcache中。 #region 自动登录 //Response.Cookies["sessionId"].Value = sessionId;//将Memcache的key以Cookie的形式返回给浏览器。 if (check) { HttpCookie cookie = new HttpCookie("sessionId"); cookie.Value = sessionId; cookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(cookie); } else { HttpCookie cookie = new HttpCookie("sessionId"); cookie.Value = sessionId; Response.Cookies.Add(cookie); } #endregion return(Content("ok:登录成功")); } else { return(Content("no:登录失败")); } } }
protected override void OnActionExecuting(ActionExecutingContext filterContext) { HttpCookie httpCookie = Request.Cookies.Get("userInfoSID"); bool idIsPass = false; UserInfo userInfo = null; //账号验证 begin if (httpCookie != null) { string userInfoSID = httpCookie.Value; object obj = MemcacheHelper.Get(userInfoSID); if (obj != null) { userInfo = SerializeHelper.DeserializeToObject <UserInfo>(obj.ToString()); ////查看该用户有没有角色、并获取角色。 //roleInfo = UserInfoService.LoadEntities(u => u.ID == userInfo.ID && u.UPwd == userInfo.UPwd).FirstOrDefault().RoleInfo.FirstOrDefault(); if (userInfo != null) { idIsPass = true; } } } // //账号验证 end if (idIsPass) //账号验证通过。 { string url = Request.Url.AbsolutePath.ToLower(); string method = Request.HttpMethod; string controllerName = RouteData.Values["controller"].ToString().ToLower(); var query = UserInfoService.LoadEntities(u => u.ID == userInfo.ID && u.UPwd == userInfo.UPwd).FirstOrDefault().RoleInfo; int count = (from u in query from a in u.ActionInfo where /*a.HttpMethod == method&&*/ a.ControllerName == controllerName //a.Url == url select a).Count(); if (count > 0) { return; } else { filterContext.Result = Redirect(@"/static/Error/nopermission.html"); return; } } else //账号验证未通过。 { filterContext.Result = Redirect("/Login/Index"); return; } // base.OnActionExecuting(filterContext); //filterContext.Result = Redirect("/Login/Index"); }
public ActionResult GetVCode() { ValidateCode vliateCode = new ValidateCode(); string code = vliateCode.CreateValidateCode(4);//产生验证码 string sId = MemcacheHelper.Set(code, DateTime.Now.AddMinutes(20)); Response.Cookies["vCodeSID"].Value = sId; byte[] buffer = vliateCode.CreateValidateGraphic(code); return(File(buffer, "image/jpeg")); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); string strController = filterContext.RouteData.Values["controller"].ToString(); string strAction = filterContext.RouteData.Values["action"].ToString(); if (strController.Equals("Login") || strController.Equals("Error")) { return; // 如果访问的是 Login 就直接放回 } // 校验用户登录 if (filterContext.HttpContext.Request.Cookies["LoginID"] == null) { filterContext.HttpContext.Response.Redirect("/Login/Index"); return; } string loginId = filterContext.HttpContext.Request.Cookies["LoginID"].Value; if (string.IsNullOrEmpty(loginId)) { // 留一个后门,请求的 Contorller 是Articles 或 Search ,则忽略登录验证 if (strController.Equals("Articles") || strController.Equals("Search")) { return; } filterContext.HttpContext.Response.Redirect("/Login/Index"); return; } object loginUser = MemcacheHelper.Get(loginId); //SerializeHelper if (loginUser == null) { filterContext.HttpContext.Response.Redirect("/Login/Index"); return; } UserInfo userInfo = SerializeHelper.DeserializeToObject <UserInfo>(loginUser.ToString()); if (userInfo == null) { filterContext.HttpContext.Response.Redirect("/Login/Index"); return; } MemcacheHelper.Set(loginId, SerializeHelper.SerializeToString(userInfo), DateTime.Now.AddMinutes(20)); // 重新设置过期时间 即 平滑时间 // 校验用户权限 IApplicationContext ctx = ContextRegistry.GetContext(); IUserInfoService userInfoService = ctx.GetObject <UserInfoService>("UserInfoService"); IActionInfoService actionInfoService = ctx.GetObject <ActionInfoService>("ActionInfoService"); userInfo = userInfoService.LoadEntites(o => o.ID.Equals(userInfo.ID)).FirstOrDefault(); BaseController.LoginUser = userInfo; if (!actionInfoService.ValidateUserAction(userInfo, filterContext.HttpContext.Request)) { filterContext.HttpContext.Response.Redirect("/Error/Index/?msg=" + "无访问权限"); } }
public string GetStringValue(string key) { var value = MemcacheHelper.Get(key)?.ToString(); if (value == null) { value = settingRepository.LoadEntity(s => s.Key.Equals(key, StringComparison.CurrentCultureIgnoreCase))?.Value; MemcacheHelper.Set(key, value, DateTime.Now.AddHours(1)); } return(value); }
public RespondWebViewData <RespondQueryStorageViewModel> GetStorageByStorageId(RequestWebViewData <RequestGetStorageByIdViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <RespondQueryStorageViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetStorageByStorageId"), #region ==================== CallBackFunc = () => { var respond = new RespondWebViewData <RespondQueryStorageViewModel> { rows = new RespondQueryStorageViewModel() }; var storage = this.mStorageDataAccess.GetstorageDataModelById(request.data.StorageId); if (storage == null) { return respond; } if (storage.deleted == (short)CommonDeleted.Deleted || storage.status != (short)CommonStatus.Used) { return respond; } respond = new RespondWebViewData <RespondQueryStorageViewModel> { rows = new RespondQueryStorageViewModel { Alias = storage.alias, ParentId = storage.parentid, Spelling = storage.PinYin, ChildNumber = storage.childnumber, ClassId = storage.classid, Comment = storage.comment, Deleted = storage.deleted, Name = storage.name, SerialNumber = storage.serialnumber, Sort = storage.sort, StorageId = storage.stoid, Status = storage.status } }; return respond; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(30), ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.BasicStorage, ParamsKeys = new object[] { request.data.StorageId } })); }
public RespondCompanyInfoViewModel GetCompanyInfoViewModel(RequestCompanyInfoViewModel request) { var respond = MemcacheHelper.Get(() => { var filePath = BuildConnectionFilePath.BuildFilePath(request.CompanyID); var _respond = new RespondCompanyInfoViewModel(); if (ExistsFileHelper.ExistsFile(filePath)) { var connectionConfig = ConfigHelper.GetConfig <DbConnectionConfig>(filePath); _respond = new RespondCompanyInfoViewModel { CompanyID = request.CompanyID, ConnectTimeout = connectionConfig.ConnectTimeout, Database = connectionConfig.Database, Password = connectionConfig.Password, Server = connectionConfig.Server, UserID = connectionConfig.UserID }; return(_respond); } var parameter = new CompanyInfoParameter { CompanyID = request.CompanyID }; var dataModel = this.mCompanyInfoDataAccess.GetCompanyInfoDataModelByID(parameter); if (dataModel == null) { return(_respond); } _respond = new RespondCompanyInfoViewModel { CompanyID = dataModel.comid, ConnectTimeout = dataModel.timeout, Database = dataModel.dbase, Password = dataModel.pwd, Server = dataModel.dbserver, UserID = dataModel.uid }; var _DbconnectionConfig = new DbConnectionConfig { ConnectTimeout = dataModel.timeout, Database = dataModel.dbase, Password = dataModel.pwd, Server = dataModel.dbserver, UserID = dataModel.uid }; ConfigHelper.Save(_DbconnectionConfig, filePath); return(_respond); }, string.Format(preCachedKey, "GetCompanyInfoViewModel"), false, request.CompanyID); return(respond); }
public tb_App_UserEntity GetModelByCache(string openid) { string key = "appuser" + openid; tb_App_UserEntity model = null; object obj = MemcacheHelper.Get(key); if (obj != null) { model = Jnwf.Utils.Json.JsonHelper.DeserializeJson <tb_App_UserEntity>(obj.ToString()); } return(model); }
public RespondWebViewData <RespondEditSubCompanyViewModel> EditSubCompany(RequestWebViewData <RequestEditSubCompanyViewModel> request) { var rData = request.data; if (this.mSubCompanyDataAccess.CheckSubCompanyIsExist(new QuerySubCompanyListParameter { Name = rData.Name, SerialNumber = rData.SerialNumber, SubComId = rData.ComId })) { return(new RespondWebViewData <RespondEditSubCompanyViewModel>(WebViewErrorCode.ExistsDataInfo.ErrorCode, string.Format("名称为[{0}]或编号为[{1}]的分公司已经存在", rData.Name, rData.SerialNumber))); } var respond = new RespondWebViewData <RespondEditSubCompanyViewModel>(WebViewErrorCode.Success); this.mDbConnection.ExecuteTransaction(tran => { var company = this.mSubCompanyDataAccess.GetsubcompanyDataModelById(rData.ComId); if (company == null) { respond = new RespondWebViewData <RespondEditSubCompanyViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } if (company.deleted == (short)CommonDeleted.Deleted) { respond = new RespondWebViewData <RespondEditSubCompanyViewModel>(WebViewErrorCode.NotExistsDataInfo); return; } var data = new subcompanyDataModel { subcomid = rData.ComId, comment = rData.Comment, email = rData.Email, linktel = rData.LinkTel, linkman = rData.LinkMan, name = rData.Name, pinyin = rData.Spelling, pricemode = rData.PriceMode, serialnumber = rData.SerialNumber, sort = rData.Sort, status = company.status, deleted = company.deleted, childnumber = company.childnumber, classid = company.classid, parentid = company.parentid }; this.mSubCompanyDataAccess.Update(data, tran); MemcacheHelper.RemoveBy(ServiceMemcachedKeyManageConst.BasicSubCompany); //由于电脑配置不上mongodb固暂时先屏蔽掉此段mongodb的数据操作 //this.SaveMongoDbData("编辑分公司资料", request, respond, this.GetType()); }); return(respond); }
public RespondWebViewData <List <RespondQueryUserViewModel> > GetUserList(RequestWebViewData <RequestQueryUserViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <List <RespondQueryUserViewModel> > > { CacheKey = string.Format(PRE_CACHE_KEY, "GetUserList"), #region ============================================ CallBackFunc = () => { var parameter = new QueryUserParameter { EmpId = request.data.EmpId, PageIndex = request.page, PageSize = request.rows, UserName = request.data.UserName }; var pageList = this.mUserDataAccess.GetUserPageData(parameter); var respond = new RespondWebViewData <List <RespondQueryUserViewModel> > { total = pageList.DataCount, rows = pageList.Datas.Select(item => new RespondQueryUserViewModel { CTime = item.CTime, Comment = item.Comment, EmpId = item.EmpId, Manager = item.Manager, Prefix = item.Prefix, Status = item.Status, UserName = item.UserName, UsePwd = item.UsePwd, UserId = item.UserId, Deleted = item.Deleted, Synchron = item.Synchron, ComId = item.ComId }).ToList() }; return respond; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(30), ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.UserManage, ParamsKeys = new object[] { request.data.EmpId, request.page, request.rows, request.data.UserName } })); }
//注销 public ActionResult Logout() { string result = "no"; HttpCookie ck = Request.Cookies["LData"]; ck.Expires = DateTime.Now.AddDays(-1); if (MemcacheHelper.Delete(ck.Value)) { result = "ok"; } return(Content(result)); }
public RespondWebViewData <RespondQuerySubCompanyViewModel> GetSubCompanyByComId(RequestWebViewData <RequestGetSubCompanyByIdViewModel> request) { return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <RespondQuerySubCompanyViewModel> > { CacheKey = string.Format(PRE_CACHE_KEY, "GetSubCompanyByComId"), #region ================= CallBackFunc = () => { var respond = new RespondWebViewData <RespondQuerySubCompanyViewModel>(WebViewErrorCode.NotExistsDataInfo) { rows = new RespondQuerySubCompanyViewModel() }; var subCompany = this.mSubCompanyDataAccess.GetsubcompanyDataModelById(request.data.ComId); if (subCompany == null) { return respond; } if (subCompany.deleted == (short)CommonDeleted.Deleted || subCompany.status != (short)CommonStatus.Used) { return respond; } respond = new RespondWebViewData <RespondQuerySubCompanyViewModel> { rows = new RespondQuerySubCompanyViewModel { ComId = subCompany.subcomid, Comment = subCompany.comment, Email = subCompany.email, LinkMan = subCompany.linkman, LinkTel = subCompany.linktel, Name = subCompany.name, PriceMode = subCompany.pricemode.ToString(), SerialNumber = subCompany.serialnumber, sort = subCompany.sort.ToString(), Spelling = subCompany.pinyin } }; return respond; }, #endregion ExpiresAt = DateTime.Now.AddMinutes(30), ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.BasicSubCompany, ParamsKeys = new object[] { request.data.ComId } })); }
public RespondWebViewData <RespondEditProductViewModel> EditProduct(RequestWebViewData <RequestEditProductViewModel> request) { var rData = request.data; var product = this.mProductDataAccess.GetproductDataModelById(rData.ProId); if (product == null) { return(new RespondWebViewData <RespondEditProductViewModel>(WebViewErrorCode.NotExistsDataInfo)); } if (product.deleted == (short)CommonDeleted.Deleted) { return(new RespondWebViewData <RespondEditProductViewModel>(WebViewErrorCode.NotExistsDataInfo)); } if (this.mProductDataAccess.CheckProductIsExist(new QueryProductListParameter { Name = rData.Name, SerialNumber = rData.SerialNumber })) { return(new RespondWebViewData <RespondEditProductViewModel>(WebViewErrorCode.ExistsDataInfo.ErrorCode, string.Format("名称为[{0}]或编号为[{1}]的商品已经存在", rData.Name, rData.SerialNumber))); } var respond = new RespondWebViewData <RespondEditProductViewModel>(WebViewErrorCode.Success); try { this.mDbConnection.ExecuteTransaction(tran => { var data = new productDataModel { classid = product.classid, comment = rData.Comment, deleted = product.deleted, proid = rData.ProId, name = rData.Name, pinyin = rData.Spelling, parentid = product.parentid, serialnumber = rData.SerialNumber, sort = rData.Sort, status = product.status }; this.mProductDataAccess.Update(data, tran); MemcacheHelper.RemoveBy(ServiceMemcachedKeyManageConst.BasicProduct); //由于电脑配置不上mongodb固暂时先屏蔽掉此段mongodb的数据操作 //this.SaveMongoDbData("编辑商品资料", request, respond, this.GetType()); }); } catch (Exception ex) { respond = new RespondWebViewData <RespondEditProductViewModel>(WebViewErrorCode.Exception.ErrorCode, ex.Message); } return(respond); }