/// <summary> /// 使用账号登录 /// </summary> /// <param name="dto">登录信息</param> /// <returns>业务操作结果</returns> public async Task <OperationResult <User> > Login(LoginDto dto) { Check.NotNull(dto, nameof(dto)); User user = await FindUserByAccount(dto.Account); if (user == null) { return(new OperationResult <User>(OperationResultType.Error, "用户不存在")); } if (user.IsLocked) { return(new OperationResult <User>(OperationResultType.Error, "用户已被冻结,无法登录")); } SignInResult signInResult = await _signInManager.CheckPasswordSignInAsync(user, dto.Password, true); OperationResult <User> result = ToOperationResult(signInResult, user); if (!result.Succeeded) { return(result); } _logger.LogInformation(1, $"用户 {user.Id} 使用账号登录系统成功"); //触发登录成功事件 LoginEventData loginEventData = new LoginEventData() { LoginDto = dto, User = user }; _eventBus.Publish(loginEventData); return(result); }
private void HandleLogout() { LoginEventData l = new LoginEventData(Program.clientController.userAccount.Username, ""); Event ev = new Event(Event.EventTypeEnum.UserLogOff, l); networkHandler.SendMessage(ev); Program.clientController.userAccount = null; }
private void WidgetLoginEvent(LoginEventData loginData) { Model.IsLoggedDMarket = Widget.IsLogged; Model.SetChanges(); if (IsBasicIntegration) { ShowNotification("DMarket login was successful"); } }
private void OnDMarketLogin(LoginEventData login) { var message = new AppUpdateMarketTokenMessage { MarketToken = login.MarketAccessToken, RefreshMarketToken = login.MarketRefreshAccessToken }; Client.Send(message); }
private void OnWidgetLogin(LoginEventData data) { Debug.Log(string.Format("UserLogged.MarketAccessToken: {0}\nMarketRefreshAccessToken: {1}", data.MarketAccessToken, data.MarketRefreshAccessToken)); _marketAccessToken.text = data.MarketAccessToken; _marketRefreshToken.text = data.MarketRefreshAccessToken; _clientApi.MarketToken = _marketAccessToken.text; }
private async void LogLoginEvent(LoginEventData data) { await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { string loginNavigation = $"Navigated to {data.Url}"; string authCode = $"Received authorization code: {data.AuthCode}"; LogEntries.Add(new EventData { StaticText = loginNavigation, IsRequest = true }); LogEntries.Add(new EventData { StaticText = authCode, IsRequest = false }); NotifyLogWindow(); }); }
private void LogLoginEvent(object sender, LoginEventData data) { if (data != null) { string loginNavigation = $"Navigated to {data.Url}"; string authCode = $"Received authorization code: {data.AuthCode}"; // These items should be the very first in the log _items.Insert(0, new EventData { StaticText = authCode, IsRequest = false }); _items.Insert(0, new EventData { StaticText = loginNavigation, IsRequest = true }); NotifyLogWindow(); } }
public async Task UpdateLogin(LoginEventData data) { var user = await _userRep.GetAsync(data.UserId.Value); if (user == null) { return; } user.LastLoginTime = data.LoginTime; user.LastLoginIP = data.LoginIP; await _userRep.UpdateAsync(user, user => new { user.LastLoginTime, user.LastLoginIP }); var record = new SysLoginRecord(); record.UserId = user.Id; record.IP = user.LastLoginIP; record.Time = user.LastLoginTime; record.JwtExpireTime = data.JwtExpireTime; record.JwtJti = data.JwtJti; await _recordRep.InsertAsync(record); }
private void OnWidgetLogin(LoginEventData loginEventData) { Widget.LoginEvent -= OnWidgetLogin; StartCoroutine(CloseWidget()); }
private void OnDMarketLogin(LoginEventData loginData) { Client.Send(new AppUpdateMarketTokenMessage(loginData.MarketAccessToken, loginData.MarketRefreshAccessToken)); }
private void OnLogin(LoginEventData data) { _isNeedReloadMarketData = true; Model.BasicAccessToken = data.MarketAccessToken; Model.SetChanges(); }
public void HandleMessage(ServerResponse sender, Event e) { Event.EventTypeEnum enumType = e.EventType; Account acc = new Account("NULL", "NULL"); switch (enumType) { case Event.EventTypeEnum.CreateAccount: //Check list of all accounts and make sure the username isn't taken. If not, send new account LoginEventData createAccData = JsonConvert.DeserializeObject <LoginEventData>(e.EventData.ToString()); bool canCreate = true; if (accountList == null) { accountList = new List <Account>(); } for (int i = 0; i < accountList.Count && canCreate; i++) { string s = accountList.ElementAt(i).Username; if (s == createAccData.Username) { canCreate = false; } } if (canCreate) { acc = new Account(createAccData.Username, createAccData.Password); accountList.Add(acc); logger.NormalMessage("New user created: " + createAccData.Username); //Send success response //sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseSuccess, null)); //Send account data sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerSendAccount, new AccountData(acc))); } else { logger.ErrorMessage("User attempted to create an account with the same username as one that exists."); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseError, "Account already exists. Try again.")); } break; case Event.EventTypeEnum.LoginAttempt: //Find if the username exits. If so, make sure the password is correct. Send account data bool found = false; LoginEventData loginData = JsonConvert.DeserializeObject <LoginEventData>(e.EventData.ToString()); for (int i = 0; i < accountList.Count && !found; i++) { string u = accountList.ElementAt(i).Username; if (u == loginData.Username) { found = true; acc = accountList.ElementAt(i); } } if (loginData.Password == acc.Password) { //Successful login attempt logger.NormalMessage("User " + loginData.Username + " has logged in"); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseSuccess, null)); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerSendAccount, acc)); } else { //Unsuccessful login attempt logger.ErrorMessage("User " + loginData.Username + " made bad login attempt"); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseError, "We couldn't find that username/password combo. Try again.")); } break; case Event.EventTypeEnum.NULLEVENTENUM: logger.ErrorMessage("Null event received in ServerHandler.HandleMessage()"); break; } }
private void WidgetLoginEvent(LoginEventData loginData) { Model.IsLoggedDMarket = Widget.IsLogged; Model.SetChanges(); }
private void BtnLogin_Click(object sender, EventArgs e) { LoginEventData eData = new LoginEventData(uxTB_Username.Text, uxTB_Password.Text); Program.netHandler.SendMessage(new Event(Event.EventTypeEnum.LoginAttempt, eData)); }
public void HandleMessage(ServerResponse sender, Event e) { Event.EventTypeEnum enumType = e.EventType; Account acc = new Account("NULL", "NULL"); switch (enumType) { case Event.EventTypeEnum.CreateAccount: //Check list of all accounts and make sure the username isn't taken. If not, send new account LoginEventData createAccData = JsonConvert.DeserializeObject <LoginEventData>(e.EventData.ToString()); bool canCreate = true; if (accountList == null) { accountList = new List <Account>(); } for (int i = 0; i < accountList.Count && canCreate; i++) { string s = accountList.ElementAt(i).Username; if (s == createAccData.Username) { canCreate = false; } } if (canCreate) { acc = new Account(createAccData.Username, createAccData.Password); acc.IsOnline = true; accountList.Add(acc); updateActivityList("New user created: " + createAccData.Username); updateUserList(accountList); //Send success response //sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseSuccess, null)); //Send account data sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerSendAccount, new AccountData(acc))); } else { updateActivityList("User attempted to create an account with the same username as one that exists."); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseError, new ServerErrorData("Account already exists. Try again."))); } break; case Event.EventTypeEnum.LoginAttempt: //Find if the username exits. If so, make sure the password is correct. Send account data bool found = false; LoginEventData loginData = JsonConvert.DeserializeObject <LoginEventData>(e.EventData.ToString()); for (int i = 0; i < accountList.Count && !found; i++) { string u = accountList.ElementAt(i).Username; if (u == loginData.Username) { found = true; acc = accountList.ElementAt(i); } } if (loginData.Password == acc.Password) { //Successful login attempt updateActivityList("User " + loginData.Username + " has logged in"); acc.IsOnline = true; updateUserList(accountList); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerSendAccount, new AccountData(acc))); } else { //Unsuccessful login attempt updateActivityList("User " + loginData.Username + " made bad login attempt"); sender.SendResponseToClient(new Event(Event.EventTypeEnum.ServerResponseError, new ServerErrorData("We couldn't find that username/password combo. Try again."))); } break; case Event.EventTypeEnum.UserLogOff: LoginEventData logOffData = JsonConvert.DeserializeObject <LoginEventData>(e.EventData.ToString()); foreach (Account a in accountList) { if (a.Username == logOffData.Username) { updateActivityList(a.Username + " has logged off"); a.IsOnline = false; updateUserList(accountList); break; } } break; case Event.EventTypeEnum.ClientStockRequest: StockRequestData reqData = JsonConvert.DeserializeObject <StockRequestData>(e.EventData.ToString()); string reqSymbol = reqData.StockSymbol.ToUpper(); bool inStockList = false; Stock reqStockToSend = new Stock("NULL"); for (int i = 0; i < stockList.Count; i++) { string tStock = stockList.ElementAt(i).TickerSymbol; if (tStock == reqSymbol) { inStockList = true; stockList.ElementAt(i).UpdateStock(); reqStockToSend = stockList.ElementAt(i); break; } } if (!inStockList) { Stock tStock = new Stock(reqSymbol); reqStockToSend = tStock; stockList.Add(tStock); } StockData sd = new StockData(reqStockToSend); Event reqEventToSend = new Event(Event.EventTypeEnum.ServerSendStock, sd); sender.SendResponseToClient(reqEventToSend); updateStockList(stockList); break; case Event.EventTypeEnum.NULLEVENTENUM: updateActivityList("Null event received in ServerHandler.HandleMessage()"); break; } }