public WebSYSAccountManager(IServiceProvider _serviceProvider,
                             IHttpContextAccessor _httpContextAccessor,
                             VerifyCode _verifyCode,
                             SysLoginInfo sysLogin
                             ) : base(_serviceProvider)
 {
     Session             = _httpContextAccessor.HttpContext.Session;
     HttpContextAccessor = _httpContextAccessor;
     this.verifyCode     = _verifyCode;
     SysLogin            = sysLogin;
 }
Beispiel #2
0
 public WebEntranceController(
     WebSYSAccountManager _accountManager,
     SysLoginInfo _sysLoginInfo,
     IHttpContextAccessor _httpContextAccessor,
     VerifyCode _verifyCode
     )
 {
     verifyCode          = _verifyCode;
     accountManager      = _accountManager;
     sysLoginInfo        = _sysLoginInfo;
     httpContextAccessor = _httpContextAccessor;
 }
Beispiel #3
0
        public ActionResult Logout()
        {
            var user = SysLoginInfo.CurAccount();

            if (user != null)
            {
                accountManager.ClearToken(user.ManagerId);
            }

            SysLoginInfo.ClearSession();
            AuthenticationHelper.SignOut(ALLKeys.C_ADMINUSER);
            return(RedirectToAction("Login"));
        }
Beispiel #4
0
 public ActionResult Login()
 {
     if (SysLoginInfo.CurAccount() != null)
     {
         return(RedirectToAction("Index", "WebHome"));
     }
     else
     {
         SysLoginInfo.ClearSession();
         AuthenticationHelper.SignOut(ALLKeys.C_ADMINUSER);
     }
     return(View("~/WebManager/Views/WebEntrance/Login.cshtml"));
 }
        public override void OnActionExecuted(ActionExecutedContext filterContext)
        {
            try
            {
                //操作类型(0新增 1修改 2删除 3登录)
                WebSysLog log  = new WebSysLog();
                var       info = SysLoginInfo.CurAccount();
                if (info != null)
                {
                    log.ManagerGuid    = info.ManagerId.ToString();
                    log.ManagerAccount = info.ManagerName;
                }
                log.LogIp   = GetIP();
                log.LogType = _type;
                log.LogTime = DateTime.Now;//操作时间
                log.LogName = _LogTypeName;

                string control = filterContext.Controller.ValueProvider.GetValue("controller").AttemptedValue;
                string action  = filterContext.Controller.ValueProvider.GetValue("action").AttemptedValue;

                //参数说明
                StringBuilder ParamContent = new StringBuilder();
                if (_parameterNameList != "")
                {//根据条件得到参数
                    ParamContent.Append(GetWhereParam(filterContext.Controller.ValueProvider));
                }
                else
                {//获取提交的所有参数
                    ParamContent.Append(GetAllParam(filterContext.Controller.ValueProvider));
                }
                log.MapMethod  = control + "/" + action;  //操作方法
                log.LogContent = ParamContent.ToString(); //参数说明

                //根据数据表设计,进行字符串的裁剪
                log.LogContent = log.LogContent.Length > 4000 ? log.LogContent.Substring(0, 4000) : log.LogContent;
                log.MapMethod  = log.MapMethod.Length > 100 ? log.MapMethod.Substring(0, 100) : log.MapMethod;

                web_managerEntities db = new web_managerEntities(Encrypt.StringDecodeOne(DBConfigure.ConnStr));
                db.WebSysLog.Add(log);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                //LogHelper.WriteLog("写操作日志错误", ex);
            }
        }
        public AjaxResult DoLogin(string LoginName, string Password, string VerCode)
        {
            if (string.IsNullOrEmpty(LoginName))
            {
                return(new AjaxResult("请输入登录账号"));
            }
            if (string.IsNullOrEmpty(Password))
            {
                return(new AjaxResult("请输入登录密码"));
            }
            if (string.IsNullOrEmpty(VerCode))
            {
                return(new AjaxResult("请输入登录验证码"));
            }
            //检查验证码
            if (!VerifyCode.CheckVerifyCode(VerCode))
            {
                return(new AjaxResult("验证码错误"));
            }
            var sysUser = GetAccountByName(LoginName);

            if (sysUser == null)
            {
                return(new AjaxResult("登录账号无效"));
            }

            if (sysUser.ManagerPwd != Encrypt.MD5Encrypt(Password + sysUser.ManagerScal))
            {
                return(new AjaxResult("登陆密码错误"));
            }
            DateTime dtNow = DateTime.Now;

            sysUser.LastLoginTime = dtNow;
            sysUser.CurToken      = Encrypt.MD5Encrypt(Guid.NewGuid().ToString());
            db.SaveChanges();
            sysUser.ManagerPwd  = "";
            sysUser.ManagerScal = "";


            var cookieInfo = new AdminCookieInfo()
            {
                ManagerAccount = sysUser.ManagerName,
                LastLoginTime  = dtNow,
                LoginToken     = sysUser.CurToken,
                ManagerId      = sysUser.ManagerId,
            };
            SysManager manager = new SysManager()
            {
                IsSupper        = sysUser.IsSupper,
                ManagerId       = sysUser.ManagerId,
                ManagerName     = sysUser.ManagerName,
                ManagerRealname = sysUser.ManagerRealname
            };

            SysLoginInfo.SetCurAccount(manager);

            #region 权限页面内容写入
            List <WebSysMenuPage> autoPages = GetAuthPages(manager);
            List <SysMenuPage>    pages     = autoPages.Select(s => new SysMenuPage()
            {
                MenuId       = s.MenuId,
                PageBtnname  = s.PageBtnname,
                PageId       = s.PageId,
                PageName     = s.PageName,
                PageUrl      = s.PageUrl,
                PageViewname = s.PageViewname
            }).ToList();
            SysLoginInfo.SetCurMenuPages(pages);
            #endregion

            AuthenticationHelper.SignIn(ALLKeys.C_ADMINUSER, sysUser.ManagerName, Newtonsoft.Json.JsonConvert.SerializeObject(cookieInfo), 60 * 8);
            return(new AjaxResult(sysUser));
        }