/// <summary>在调用操作方法前调用。</summary> /// <param name="filterContext">有关当前请求和操作的信息。</param> protected override void OnActionExecuting(ActionExecutingContext filterContext) { #if !DEBUG var user = UserInfoBll.GetByUsername("admin").Mapper <UserInfoDto>(); CurrentUser = user; Session.SetByRedis(user); #endif }
public ActionResult GetUserInfo() { UserInfoOutputDto user = Session.GetByRedis <UserInfoOutputDto>(SessionKey.UserInfo); #if DEBUG user = UserInfoBll.GetByUsername("masuit").Mapper <UserInfoOutputDto>(); #endif return(ResultData(user)); }
public void LoginRecord(UserInfoOutputDto userInfo, string ip, LoginType type) { Interview view = InterviewBll.GetFirstEntityFromL2CacheNoTracking(i => i.IP.Equals(ip), i => i.ViewTime, false); string addr = view.Address; string prov = view.Province; LoginRecord record = new LoginRecord() { IP = ip, LoginTime = DateTime.Now, LoginType = type, PhysicAddress = addr, Province = prov }; UserInfo u = UserInfoBll.GetByUsername(userInfo.Username); u.LoginRecord.Add(record); UserInfoBll.UpdateEntitySaved(u); string content = System.IO.File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "template\\login.html").Replace("{{name}}", u.Username).Replace("{{time}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")).Replace("{{ip}}", record.IP).Replace("{{address}}", record.PhysicAddress); CommonHelper.SendMail(CommonHelper.GetSettings("Title") + "账号登录通知", content, CommonHelper.GetSettings("ReceiveEmail")); }
/// <summary>在调用操作方法前调用。</summary> /// <param name="filterContext">有关当前请求和操作的信息。</param> protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (filterContext.HttpContext.Request.HttpMethod.Equals("GET", StringComparison.InvariantCultureIgnoreCase))//get方式的多半是页面 { UserInfoOutputDto user = filterContext.HttpContext.Session.GetByRedis <UserInfoOutputDto>(SessionKey.UserInfo); #if DEBUG user = UserInfoBll.GetByUsername("masuit").Mapper <UserInfoOutputDto>(); Session.SetByRedis(SessionKey.UserInfo, user); #endif if (user == null && Request.Cookies.Count > 2)//执行自动登录 { string name = CookieHelper.GetCookieValue("username"); string pwd = CookieHelper.GetCookieValue("password")?.DesDecrypt(ConfigurationManager.AppSettings["BaiduAK"]); var userInfo = UserInfoBll.Login(name, pwd); if (userInfo != null) { CookieHelper.SetCookie("username", name, DateTime.Now.AddDays(7)); CookieHelper.SetCookie("password", CookieHelper.GetCookieValue("password"), DateTime.Now.AddDays(7)); Session.SetByRedis(SessionKey.UserInfo, userInfo); } } } else { if (ModelState.IsValid) { return; } List <string> errmsgs = new List <string>(); ModelState.ForEach(kv => kv.Value.Errors.ForEach(error => errmsgs.Add(error.ErrorMessage))); if (errmsgs.Count > 1) { for (var i = 0; i < errmsgs.Count; i++) { errmsgs[i] = i + 1 + ". " + errmsgs[i]; } } filterContext.Result = ResultData(errmsgs, false, "数据校验失败,错误信息:" + string.Join(" | ", errmsgs), true, HttpStatusCode.BadRequest); } }
public void LoginRecord(UserInfoOutputDto userInfo, string ip, LoginType type) { var view = RedisHelper.ListRange <Interview>($"Interview:{DateTime.Today:yyyy:MM:dd}").OrderByDescending(i => i.ViewTime).FirstOrDefault(i => i.IP.Equals(ip)); string addr = view?.Address; string prov = view?.Province; LoginRecord record = new LoginRecord() { IP = ip, LoginTime = DateTime.Now, LoginType = type, PhysicAddress = addr, Province = prov }; UserInfo u = UserInfoBll.GetByUsername(userInfo.Username); u.LoginRecord.Add(record); UserInfoBll.UpdateEntitySaved(u); string content = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "template\\login.html").Replace("{{name}}", u.Username).Replace("{{time}}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")).Replace("{{ip}}", record.IP).Replace("{{address}}", record.PhysicAddress); CommonHelper.SendMail(CommonHelper.GetSettings("Title") + "账号登录通知", content, CommonHelper.GetSettings("ReceiveEmail")); }