/// <summary> /// 会话结束触发事件 /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> protected void Session_End(object sender, EventArgs e) { //日志 LogUtils.Log("会话销毁", "Session_End", Category.Info, Session.SessionID); var mongoDbHelper = new MongoDbStore<SystemUserSession>("SystemUserSessions"); mongoDbHelper.Delete(systemUserSession => systemUserSession.SessionID == Session.SessionID); }
/// <summary> /// 获取资源描述 /// </summary> /// <param name="resourceKey"></param> /// <returns></returns> public string GetResourceDescriptionByKey(string resourceKey) { var resources = new MongoDbStore<System_Resources>("Resources"); var resource = resources.Single(r => r.Key.ToLower() == resourceKey); if (resource == null) return resourceKey; if (resource.ParentCode == null || resource.ParentCode == "0") return resource.Description == null ? resourceKey : resource.Description; return GetResourceDescriptionByCode(resource.ParentCode, resource.Description); }
/// <summary> /// The get system user session. /// </summary> /// <param name="sessionId"> /// The session id. /// </param> /// <returns> /// The <see cref="SystemUserSession"/>. /// </returns> public static SystemUserSession GetSystemUserSession(string sessionId) { var mongoDbStore = new MongoDbStore<SystemUserSession>("SystemUserSessions"); var systemUserSession = mongoDbStore.Single(item => item.SessionID == sessionId); if (systemUserSession != null) { return systemUserSession; } else { return null; } }
public ActionResult Exit() { try { var mongoDbStore = new MongoDbStore<SystemUserSession>("SystemUserSessions"); mongoDbStore.Delete(item => item.SessionID == this.Session.SessionID); return this.Content("exit"); } catch (Exception) { return this.Content("0"); } }
/// <summary> /// 根据城市ID获取县区数据列表 /// </summary> /// <param name="cityId"> /// The city id. /// </param> /// <returns> /// 返回查询结果 /// </returns> public static IList<County> GetCountiesByCityID(int cityId) { if (cityId < 1) { return new List<County>(); } var mongoDbStore = new MongoDbStore<County>("Counties"); var queries = mongoDbStore.List(c => c.CityID == cityId); if (queries == null) { return new List<County>(); } return queries.ToList(); }
public void UpdatePwd(string loginName, string userId, string password, string oldpwd) { try { if (!string.IsNullOrEmpty(loginName) && !string.IsNullOrEmpty(userId) && !string.IsNullOrEmpty(password) && !string.IsNullOrEmpty(oldpwd)) { this.systemUserService = new SystemUserService(); var userModel = this.systemUserService.QueryByLoginName(loginName); string str = Encrypt.HashBySHA1(loginName + oldpwd); if (userModel.LoginPassword != str) { Response.Write(1); } else { var loginPassword = Encrypt.HashBySHA1(loginName + password); var id = int.Parse(userId); LogUtils.Log("用户“" + loginName + "”修改密码", "UpdatePwd", Category.Info, Session.SessionID); var recevieid = this.systemUserService.UpdatePassWord(id, loginPassword); if (recevieid > 0) { Response.Write(2); var mongoDbStore = new MongoDbStore<SystemUserSession>("SystemUserSessions"); mongoDbStore.Delete(item => item.SessionID == this.Session.SessionID); } } } } catch (Exception exception) { throw new ArgumentNullException(exception.Message, exception); } }
/// <summary> /// The query cities. /// </summary> /// <param name="provinceID"> /// The Province ID. /// </param> /// <returns> /// The <see cref="JsonResult"/>. /// </returns> public static IList<City> QueryCities(int provinceID) { var mongoDbHelper = new MongoDbStore<City>("Cities"); var list = mongoDbHelper.List(c => c.ProvinceID == provinceID); if (list == null) { return new List<City>(); } return list.ToList(); }
/// <summary> /// The get resource. /// </summary> public static IList<System_Resources> GetResource() { var mongoDbStore = new MongoDbStore<System_Resources>("Resources"); var list = mongoDbStore.List(i => i.Key.Contains("picture")); return list; }
/// <summary> /// The refresh session. /// </summary> /// <param name="userSession"> /// The user session. /// </param> public static void RefreshSystemUserSession(SystemUserSession userSession) { var mongoDbStore = new MongoDbStore<SystemUserSession>("SystemUserSessions"); var systemUserSession = mongoDbStore.Single(item => item.SessionID == userSession.SessionID); if (systemUserSession != null) { mongoDbStore.Delete(s => s.SessionID == userSession.SessionID); } mongoDbStore.Insert(userSession); }
/// <summary> /// 处理会话状态 /// </summary> /// <param name="filterContext"> /// The filter context. /// </param> /// <param name="mongoDbStore"> /// The mongo db store. /// </param> private void HandleSessionState( ActionExecutingContext filterContext, MongoDbStore<SystemUserSession> mongoDbStore) { var timeSpan = DateTime.Now.Subtract(this.systemUserSession.LastVisitTime); if (timeSpan.TotalMinutes > 30) { mongoDbStore.Delete(item => item.SessionID == this.Session.SessionID); this.HandleSessionLost(filterContext); } this.systemUserSession.LastVisitTime = DateTime.Now; MongoDBHelper.RefreshSystemUserSession(this.systemUserSession); }
/// <summary> /// The query provinces. /// </summary> /// <returns> /// The <see cref="JsonResult"/>. /// </returns> public static IList<Province> QueryProvinces() { var mongoDbHelper = new MongoDbStore<Province>("Provinces"); var list = mongoDbHelper.List(p => p.ID != 0); return list == null ? new List<Province>() : list.ToList(); }
/// <summary> /// The query counties. /// </summary> /// <param name="cityID"> /// The city id. /// </param> /// <returns> /// The <see cref="JsonResult"/>. /// </returns> public JsonResult QueryCounties(string cityID) { var mongoDbHelper = new MongoDbStore<County>("Counties"); int pageCount; var list = mongoDbHelper.List(1, 2976, county => county.ID != 0, out pageCount); if (list == null) { return this.Json(null); } var result = list.Where(item => item.CityID == Convert.ToInt32(cityID)); return this.Json(result, JsonRequestBehavior.AllowGet); }
/// <summary> /// The validate right. /// </summary> /// <param name="resourceKey"> /// The resource key. /// </param> /// <param name="permissions"> /// The permissions. /// </param> /// <returns> /// The <see cref="bool"/>. /// </returns> public bool ValidateRight(string resourceKey, string permissions) { if (string.IsNullOrWhiteSpace(permissions) || string.IsNullOrWhiteSpace(resourceKey)) { return false; } try { var resources = new MongoDbStore<System_Resources>("Resources"); var list = resources.List(i => i.ID > 0); var resource = list.FirstOrDefault(item => item.Key == resourceKey); if (resource == null || resource.Code == null) { return true; } return resource.Position <= permissions.Length && permissions.Substring(resource.Position, 1).Equals("1"); } catch (Exception exception) { LogUtils.SystemTrace( string.Format("判断权限出错了,ResourceKey = {0},错误信息:{1}", resourceKey, exception.Message), "ValidateRight", Category.Fatal, "", 10, "判断权限"); throw; } }
/// <summary> /// 获取或设置省/市/区县编号. /// </summary> public string CountyName(string splite) { if (this.CountyID < 1) { return null; } var countyList = new MongoDbStore<County>("Counties"); var county = countyList.Single(item => item.ID == this.CountyID); if (county == null) { return null; } var cityList = new MongoDbStore<City>("Cities"); var city = cityList.Single(item => item.ID == county.CityID); if (city == null) { return null; } var provinceList = new MongoDbStore<Province>("Provinces"); var provice = provinceList.Single(item => item.ID == city.ProvinceID); if (provice == null) return null; return provice.Name + splite + city.Name + splite + county.Name; }
/// <summary> /// The generate limited buy area. /// </summary> /// <returns> /// The <see cref="string"/>. /// </returns> private string GenerateLimitedBuyArea() { int pageCount; var mongoDbHelperForProvince = new MongoDbStore<Province>("Provinces"); var mongoDbHelperForCity = new MongoDbStore<City>("Cities"); var mongoDbHelperForCounty = new MongoDbStore<County>("Counties"); var provinces = mongoDbHelperForProvince.List(1, 34, province => province.ID != 0, out pageCount); var cities = mongoDbHelperForCity.List(1, 346, city => city.ID != 0, out pageCount); var counties = mongoDbHelperForCounty.List(1, 2976, county => county.ID != 0, out pageCount); var province1 = new List<string> { "北京", "上海", "天津", "重庆", "河北" }; var province2 = new List<string> { "山西", "河南", "辽宁", "吉林", "黑龙江" }; var province3 = new List<string> { "内蒙古", "江苏", "山东", "安徽", "浙江" }; var province4 = new List<string> { "福建", "湖北", "湖南", "广东", "广西" }; var province5 = new List<string> { "江西", "四川", "海南", "贵州", "云南" }; var province6 = new List<string> { "西藏", "陕西", "甘肃", "青海", "宁夏" }; var province7 = new List<string> { "新疆", "台湾", "香港", "澳门" }; var stringBuilder = new StringBuilder(); stringBuilder.Append("<div class='smc'>"); #region Generate Province One Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province1[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { if (cityList.Count == 1) { var countyList = counties.Where(item => item.CityID == cityList[0].ID); stringBuilder.Append("<div class='city'><ul>"); foreach (var county in countyList) { stringBuilder.Append(string.Format("<li title='{0}'>", county.Name)); stringBuilder.Append( string.Format( "<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", county.ID, county.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } else { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Two Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province2[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Three Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province3[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Four Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province4[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Five Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province5[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Six Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 5; i++) { var provinceName = province6[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.AppendLine(); #region Generate Province Seven Html stringBuilder.Append("<div class='item'>"); for (var i = 0; i < 4; i++) { var provinceName = province7[i]; if (string.IsNullOrEmpty(provinceName)) { continue; } stringBuilder.Append( i < 2 ? "<div class='i-item' data-widget='area'>" : "<div class='i-item right' data-widget='area'>"); var province = provinces.Find(item => item.Name == provinceName); if (province != null) { stringBuilder.Append(string.Format("<div class='province' title='{0}'>", provinceName)); stringBuilder.Append(string.Format("<div data-widget='area-check' data-id='{0}' class='input selected'>", province.ID)); stringBuilder.Append("<span>√</span>"); stringBuilder.Append("</div>"); stringBuilder.Append(string.Format("{0} (<span class='red' data-widget='area-num'>0</span>)<em></em>", provinceName)); stringBuilder.Append("</div>"); var cityList = cities.Where(item => item.ProvinceID == province.ID).ToList(); if (cityList.Count > 0) { stringBuilder.Append("<div class='city'><ul>"); foreach (var city in cityList) { stringBuilder.Append(string.Format("<li title='{0}'>", city.Name)); stringBuilder.Append(string.Format("<input checked='checked' data-widget='area-list' autocomplete='off' data-id='{0}' type='checkbox'>{1}", city.ID, city.Name)); stringBuilder.Append(string.Format("</li>")); } stringBuilder.Append("</ul></div>"); } } stringBuilder.Append("</div>"); } stringBuilder.Append("</div>"); #endregion stringBuilder.Append("</div>"); return stringBuilder.ToString(); }
/// <summary> /// The refresh counties. /// </summary> public static void RefreshCounties() { var mongoDbStore = new MongoDbStore<County>("Counties"); mongoDbStore.Delete(item => item.ID != 0); var systemHomeService = new SystemHomeService(); var counties = systemHomeService.QueryCounties(); foreach (var county in counties) { mongoDbStore.Insert(county); } }
/// <summary> /// Load provinces to MongoDb /// </summary> private static void LoadProvinces() { var mongoDbStore = new MongoDbStore<Province>("Provinces"); mongoDbStore.Delete(item => item.ID != 0); var systemHomeService = new SystemHomeService(); var provinces = systemHomeService.QueryProvinces(); foreach (var province in provinces) { mongoDbStore.Insert(province); } }
/// <summary> /// The refresh resource. /// </summary> public static void RefreshResource() { var mongoDbStore = new MongoDbStore<System_Resources>("Resources"); mongoDbStore.Delete(item => item.ID != 0); var systemResourcesService = new SystemResourcesService(); var resources = systemResourcesService.QueryAll(); foreach (var resource in resources) { mongoDbStore.Insert(resource); } }
/// <summary> /// Load cities to MongoDb /// </summary> private static void LoadCities() { var mongoDbStore = new MongoDbStore<City>("Cities"); mongoDbStore.Delete(item => item.ID != 0); var systemHomeService = new SystemHomeService(); var cities = systemHomeService.QueryCities(); foreach (var city in cities) { mongoDbStore.Insert(city); } }
/// <summary> /// The on action executing. /// </summary> /// <param name="filterContext"> /// The filter context. /// </param> protected override void OnActionExecuting(ActionExecutingContext filterContext) { string resourceKey = string.Empty; string resourceDescription = string.Empty; var mongoDbStore = new MongoDbStore<SystemUserSession>("SystemUserSessions"); systemUserSession = mongoDbStore.Single(item => item.SessionID == Session.SessionID); if (systemUserSession == null) { HandleSessionLost(filterContext); } else { // todo: 会话失效判断 //this.HandleSessionState(filterContext, mongoDbStore); var systemRightService = new SystemRightsService(); resourceKey = this.GetResourceKey(filterContext); resourceDescription = systemRightService.GetResourceDescriptionByKey(resourceKey); if (!systemRightService.ValidateRight(resourceKey, this.systemUserSession.Permissions)) { if (!this.ValidateAjaxRequest(filterContext)) { filterContext.Result = this.Content("<script type='text/javascript'>alert('对不起,您没有此操作权限!');</script>"); } else { Response.StatusCode = 610; filterContext.Result = this.Json(new AjaxResponse(-403, "无操作权限"), JsonRequestBehavior.AllowGet); } LogUtils.Log( "无操作权限" + resourceDescription, "OnActionExecuting", Category.Info, systemUserSession.SessionID, systemUserSession.SystemUserID, "Enter"); } } if (systemUserSession == null) { LogUtils.Log("未登录", "OnActionExecuting"); } else { LogUtils.Log( "用户“" + systemUserSession.Name + "”,正在操作:" + resourceDescription, "OnActionExecuting", Category.Info, systemUserSession.SessionID, systemUserSession.SystemUserID, "Enter"); } base.OnActionExecuting(filterContext); }