コード例 #1
0
        /// <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
        }
コード例 #2
0
        public ActionResult GetUserInfo()
        {
            UserInfoOutputDto user = Session.GetByRedis <UserInfoOutputDto>(SessionKey.UserInfo);

#if DEBUG
            user = UserInfoBll.GetByUsername("masuit").Mapper <UserInfoOutputDto>();
#endif
            return(ResultData(user));
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        /// <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);
            }
        }
コード例 #5
0
        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"));
        }