Exemplo n.º 1
0
        /// <summary>
        /// DB에 로그 남기기
        /// </summary>
        /// <param name="nLogLevel">로그 수준</param>
        /// <param name="typeSignLog"></param>
        /// <param name="idUser"></param>
        /// <param name="sMessage"></param>
        public static void LogAdd_DB(
            int nLogLevel
            , UserSignLogType typeSignLog
            , long idUser
            , string sMessage)
        {
            if (nLogLevel <= GlobalStatic.SignLogLevel)
            {
                //기준 날짜
                DateTime dtNow = DateTime.Now;

                using (SpaNetCoreFoundationContext db1 = new SpaNetCoreFoundationContext())
                {
                    UserSignLog newSL = new UserSignLog();
                    newSL.AddDate     = dtNow;
                    newSL.Level       = nLogLevel;
                    newSL.SignLogType = typeSignLog;

                    newSL.idUser   = idUser;
                    newSL.Contents = sMessage;

                    db1.UserSignLog.Add(newSL);
                    db1.SaveChanges();
                } //end using db1
            }
        }         //end LogAdd_DB
Exemplo n.º 2
0
        private async void LoginExecute(object o)
        {
            var d = o as DialogHost;

            d.DialogContent = new WaitDialog {
                DataContext = "正在登录..."
            };
            d.IsOpen = true;

            var result =
                await
                    (Application.Current as App).ViewModel.Session.Login((LoginMode)AccoutType, Accout, Password,
                                                                         VerifyCode, VerifyQuestionIndex,
                                                                         VerifyAnswer);

            d.IsOpen = false;
            if (result.Status == 0)
            {
                var info = await(Application.Current as App).ViewModel.Session.GetUserInformation();

                _applicationViewModel.Name      = info.UserName;
                _applicationViewModel.AvatarUrl = info.Avatar;

                UserSignLog signLog = JsonConvert.DeserializeObject <UserSignLog>(Settings.Default.SignLog) ??
                                      new UserSignLog();
                if (signLog.ContainsKey(_applicationViewModel.Session.User.UID))
                {
                    _applicationViewModel.CheckInDates = signLog[_applicationViewModel.Session.User.UID];
                }
                else
                {
                    _applicationViewModel.CheckInDates = new DatesCollection();
                }

                CancelExecute(d.Parent);
                (Application.Current as App).NotifyIcon.ShowBalloonTip(3000, "登录成功",
                                                                       $"欢迎回来,{result.Values["username"]}。", ToolTipIcon.Info);
            }
            else
            {
                switch (result.Message)
                {
                case "login_strike":
                    d.DialogContent = new ErrorMessageDialog("登录失败:", "由于多次尝试登陆失败,请稍后再尝试。");
                    break;

                case "login_invalid":
                    d.DialogContent = new ErrorMessageDialog("登录失败:", "账户密码有误,请核对后再尝试。");
                    break;

                default:
                    d.DialogContent = new ErrorMessageDialog("登录失败:",
                                                             $"由于未知原因登录失败,这些信息可能为你提供了一些信息:\r\n{result.Message}。");
                    break;
                }
                d.IsOpen = true;
                RefreshVerifyCodeCommand.Execute(null);
                VerifyCode = "";
            }
        }
Exemplo n.º 3
0
        public void SaveSetting()
        {
            if (ViewModel.Session.State == SessionState.Alive)
            {
                UserSignLog signLog = JsonConvert.DeserializeObject <UserSignLog>(Settings.Default.SignLog) ??
                                      new UserSignLog();

                if (signLog.ContainsKey(ViewModel.Session.User.UID))
                {
                    signLog[ViewModel.Session.User.UID] = ViewModel.CheckInDates;
                }
                else
                {
                    signLog.Add(ViewModel.Session.User.UID, ViewModel.CheckInDates);
                }

                Settings.Default.SignLog = JsonConvert.SerializeObject(signLog);
            }
            Settings.Default.Cookies      = JsonConvert.SerializeObject(ViewModel.Session.Cookies);
            Settings.Default.AutoFillData = JsonConvert.SerializeObject(ViewModel.AutofillList);
            Settings.Default.Test         = "This is a string.";
            Settings.Default.Save();
        }
Exemplo n.º 4
0
        /// <summary>
        /// 登陆(获取Token)-自动绑定认证中心UserId
        /// </summary>
        /// <returns></returns>
        public async Task <ResponseMessage <IActionResult> > SignIn(SignRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var response  = new ResponseMessage <IActionResult>();
            var localUser = await _userStore.GetUserInfos().FirstOrDefaultAsync(a => a.LoginName.Equals(request.LoginName), cancellationToken);

            if (localUser == null)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = "用户不存在,请联系管理员添加用户";
                return(response);
            }
            var token = await helperAuthentication.GetUserTokenObject(request);

            if (!token.HasValues)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = "用户名或密码错误";
                return(response);
            }
            if (token["error"] != null)
            {
                response.Code    = ResponseCodeDefines.ModelStateInvalid;
                response.Message = token["error"].ToString();
                return(response);
            }
            var userId = HelperAuthentication.GetUserId(token["access_token"].ToString());

            localUser.UserId = userId;
            //登录日志
            var signLog = new UserSignLog
            {
                Id          = Guid.NewGuid().ToString(),
                LoginName   = localUser.LoginName,
                Platform    = 0, // TODO header里面传
                SigninTime  = DateTime.Now,
                LocalUserId = localUser.Id,
                UserId      = userId,
                UserName    = localUser.UserName,
            };

            localUser.Email = await helperAuthentication.GetUserEmail(userId, token["access_token"].ToString());

            //事务保存数据
            using (var trans = await _transaction.BeginTransaction())
            {
                try
                {
                    await _userStore.Create(new List <UserSignLog> {
                        signLog
                    }, cancellationToken);

                    await _userStore.Update(new List <UserInfo> {
                        localUser
                    }, cancellationToken);

                    trans.Commit();
                }
                catch (Exception e)
                {
                    trans.Rollback();
                    throw e;
                }
            }
            // [王森-191008-添加是否为管理员字段]
            token.Add("isAdmin", localUser.IsAdmin);
            response.Extension = new JsonResult(token);
            //try
            //{
            //   await EasterEgg(localUser.Id);
            //}
            //catch (Exception e)
            //{

            //    Logger.Error($"彩蛋触发失败:{e.Message}\r\n{e.StackTrace}");
            //}

            return(response);
        }