public override void OnHandle(PacketLoginRequest packet) { base.OnHandle(packet); var userManager = Server.Instance.UserManager; var result = userManager.Login(this.Client, packet); var user = result.User; if (user != null) { this.Client.SendPacket(new PacketLoginSuccess() { LoginToken = user.LoginToken, SessionToken = user.SessionToken }); this.OnLoginSuccess(user); } else { this.Client.SendPacket(new PacketClose() { Message = result.ErrorMessage }); } }
public LoginResult Login(ClienNetworkManager client, PacketLoginRequest packet) { ChatUserServer user = null; lock (this.Users) { if (this.Users.Any(u => u.LoginToken.Equals(packet.LoginToken)) == true) { return(new LoginResult() { ErrorMessage = "Already Logined Account" }); } else { var sessionToken = Guid.NewGuid().ToString(); user = new ChatUserServer(packet.LoginToken, sessionToken, client); user.DisplayName = packet.DisplayName; this.Users.Add(user); this.OnLogined(user); return(new LoginResult() { User = user }); } } }
private void DoNoAuthLogin(INetworkConnection con, Packet pMsg) { try { PacketLoginRequest p = pMsg as PacketLoginRequest; ServerUser.AccountName = Guid.NewGuid().ToString(); // assign random session name ServerUser.OwningServer = MyServer.ServerUserID; Log1.Logger("LoginServer.Inbound.Login").Info("No-auth assigned user name " + ServerUser.AccountName + " from " + RemoteIP + " is attempting login..."); Log1.Logger("LoginServer.UserIPMap").Info("User [" + p.AccountName + "] from [" + RemoteIP + "] is attempting login."); string msg = ""; PacketLoginResult result = CreateLoginResultPacket(); if (result.ReplyCode == ReplyType.OK) { ServerUser.AuthTicket = Guid.NewGuid(); ServerUser.IsAuthenticated = true; ServerUser.ID = Guid.NewGuid(); // generate random ID for this session ServerUser.Profile.UserRoles = new string[0]; result.Parms.SetProperty("AccountName", ServerUser.AccountName); result.Parms.SetProperty(-1, ServerUser.Profile.UserRoles); result.Parms.SetProperty(-2, ServerUser.Profile.MaxCharacters); ConnectionManager.AuthorizeUser(ServerUser); } pMsg.ReplyPacket = result; Log1.Logger("LoginServer.Inbound.Login").Info("Game client *" + ServerUser.AccountName + "* authentication: " + result.ReplyCode.ToString() + ". " + result.ReplyMessage); } catch (Exception e) { Log1.Logger("LoginServer.Inbound.Login").Error("Exception thrown whilst player attempted login. " + e.Message, e); KillConnection("Error logging in."); } }