// deserialize login request data
    public bool Deserialize(ref LoginRequestData data)
    {
        // set deserialize data
        bool result = (GetDataSize() > 0) ? true : false;

        // data read failure -> method exit
        if (!result)
        {
            return(false);
        }

        // packet -> multiple string -> seperate stirng
        string linkedString = null;

        result &= Deserialize(ref linkedString, (int)GetDataSize());

        string[] dataSet = linkedString.Split('.');

        // input data
        data.id       = dataSet[0];
        data.password = dataSet[1];

        //return result
        return(result);
    }
    private void OnClientLogin(IClient client, LoginRequestData data)
    {
        if (PlayersByName.ContainsKey(data.UserName))
        {
            // client bereits eingeloggt oder name bereits vergeben
            using (var message = Message.CreateEmpty((ushort)MessageTag.LoginDenied)) {
                client.SendMessage(message, SendMode.Reliable);
            }
            return;
        }

        // unsubscriben. Ab jetzt werden messages vom client über
        // die ClientConnection gehandhabt.
        client.MessageReceived -= OnMessage;

        // ClientConnection erstellen und cachen
        var cc = new ClientConnection(data.UserName, client);

        Players.Add(client.ID, cc);
        PlayersByName.Add(data.UserName, cc);

        // Antwort an den client senden
        using (var m = Message.Create((ushort)MessageTag.LoginAccepted, new LoginResponseData(client.ID, new LobbyData(RoomManager.Instance.GetRoomData())))) {
            client.SendMessage(m, SendMode.Reliable);
        }
    }
Пример #3
0
        public int Login(string email, string password)
        {
            LoginRequestData data = new LoginRequestData(email, password);
            string           id   = "FAILED";
            string           json = "";

            try
            {
                id   = RequestHandler.RequestLogin(data);
                json = RequestHandler.RequestAccount(data);

                if (id == "FAILED")
                {
                    return(-1);
                }
            }
            catch
            {
                return(-2);
            }

            SelectedAccount = Json.Deserialize <AccountInfo>(json);

            launcherConfig.Email    = email;
            launcherConfig.Password = password;
            JsonHandler.SaveLauncherConfig(launcherConfig);
            return(1);
        }
Пример #4
0
        public int Remove()
        {
            LoginRequestData data = new LoginRequestData(SelectedAccount.email, SelectedAccount.password);
            string           json = "FAILED";

            try
            {
                json = RequestHandler.RequestAccount(data);

                if (json != "OK")
                {
                    return(-1);
                }
            }
            catch
            {
                return(-1);
            }

            SelectedAccount = null;

            launcherConfig.Email    = "";
            launcherConfig.Password = "";
            JsonHandler.SaveLauncherConfig(launcherConfig);
            return(1);
        }
Пример #5
0
 /// <see cref="BaseAuthenticator.SetSpecializedAuthenticatorData(ref LoginRequestData)"/>
 protected override void SetSpecializedAuthenticatorData(ref LoginRequestData data)
 {
     // Add the token to the Data attribute
     data.Token = session.properties[SFSessionProperty.TOKEN];
     // Remove the login name for an OAuth session
     data.loginName = "";
 }
Пример #6
0
        /// <summary>
        /// Builds a simple login request. Each authenticator will fill the Data part with their
        /// specialized information. The common Data attributes are already filled (clientAppId,
        /// ClienAppVersion...).
        /// </summary>
        /// <returns>A login request to send to the server.</returns>
        private SFRestRequest BuildLoginRequest()
        {
            // build uri
            var loginUrl = session.BuildLoginUrl();

            LoginRequestData data = new LoginRequestData()
            {
                loginName         = session.properties[SFSessionProperty.USER],
                accountName       = session.properties[SFSessionProperty.ACCOUNT],
                clientAppId       = SFEnvironment.DriverName,
                clientAppVersion  = SFEnvironment.DriverVersion,
                clientEnv         = SFEnvironment.ClientEnv,
                SessionParameters = session.ParameterMap,
                Authenticator     = authName,
            };

            SetSpecializedAuthenticatorData(ref data);

            int connectionTimeoutSec = int.Parse(session.properties[SFSessionProperty.CONNECTION_TIMEOUT]);

            return(session.BuildTimeoutRestRequest(loginUrl, new LoginRequest()
            {
                data = data
            }));
        }
Пример #7
0
        public async Task <IActionResult> Login([FromBody] LoginRequestData requestData)
        {
            var authenticationData =
                await _domainService.AskAsync(new LoginUser(requestData.Email, requestData.Password));

            return(Ok(authenticationData));
        }
Пример #8
0
    public void Login(string userName, string password)
    {
        LoginRequestData data = new LoginRequestData {
            userName = userName, passwordHash = password.GetHashCode()
        };

        lobby.networkClient.Send((short)CustomMessageTypes.LoginRequest, data);
    }
Пример #9
0
    // login request
    public void ReceiveLoginRequest(Socket clientSocket, byte[] data)
    {
        // packet serialize
        LoginRequestPacket packet          = new LoginRequestPacket(data);
        LoginRequestData   joinRequestData = packet.GetData();

        // process



        // send result packet
    }
Пример #10
0
    public ClientConnection(IClient client, LoginRequestData data)
    {
        Client = client;
        Name   = data.Name;

        ServerManager.Instance.Players.Add(client.ID, this);
        ServerManager.Instance.PlayersByName.Add(Name, this);

        using (Message m = Message.Create((ushort)Tags.LoginRequestAccepted, new LoginInfoData(client.ID, new LobbyInfoData(RoomManager.Instance.GetRoomDataList()))))
        {
            client.SendMessage(m, SendMode.Reliable);
        }
    }
Пример #11
0
        private Message BuildLoginReq(LoginRequestData reqData = null)
        {
            var message = new Message();
            var header  = new MessageHeader
            {
                Type        = MessageType.LOGIN_REQ,
                Attachments = reqData?.Attachments
            };

            message.Header = header;
            message.Body   = reqData?.Body;
            return(message);
        }
Пример #12
0
        public async Task <ResponseBase <LoginResponseData> > Login([FromBody] LoginRequestData model)
        {
            return(await ExecuteRequestAsync(async() =>
            {
                var ip = HttpContext.Features.Get <IHttpConnectionFeature>()?.RemoteIpAddress?.ToString();
                var response = await _signInService.Login(model, ip);
                response.Permissions = await _userService.GetUserPermissions(response.UserId, response.Username.Equals(Constants.SUPER_ADMIN_USERNAME, StringComparison.CurrentCultureIgnoreCase));
                // map the path before sending to the frontend
                response.ProfilePictureUrl = $"{Request.Scheme}://{Request.Host.Value}{response.ProfilePictureUrl}";

                return response;
            }));
        }
Пример #13
0
        public async Task <LoginResponseData> Login(LoginRequestData model, string ip)
        {
            if (_dbPatchMgr.GetStatus())
            {
                throw new ApplicationException("Database syncronization in progress, please try to login in few minutes...");
            }
            _dbPatchMgr.Sync();

            var refreshTokenLifeTime = ValidateClientAuthentication(model.ClientId, model.ClientSecret);
            var user = await _userRepo.FindUserByUsername(model.Username);

            if (user == null)
            {
                throw new ApplicationException("Invalid username or password");
            }
            if (await _userRepo.IsUserLogout(user))
            {
                throw new ApplicationException("User account is been logout");
            }
            if (!user.IsActive)
            {
                throw new ApplicationException("User account inactive");
            }
            if (_hasher.VerifyHashedPassword(user, user.PasswordHash, model.Password) == PasswordVerificationResult.Failed)
            {
                throw new ApplicationException("Invalid username or password");
            }
            var jwtSecurityToken = TokenUtility.GenerateJwtSecurityToken(_appConfig.GetSection("AppConfiguration"), TokenUtility.GenerateClaims(user.UserName, user.Id));
            var userVm           = UserExtension.BuildUserViewModel(user);
            var refreshToken     = TokenUtility.GenerateRefreshToken();

            await SaveRefreshToken(model.ClientId, model.Username, refreshToken, refreshTokenLifeTime, ip);

            user.LastLoginDate = DateTime.UtcNow;
            _userRepo.Update(user);
            var response = new LoginResponseData()
            {
                UserId            = userVm.UserID,
                Username          = userVm.Username,
                FullName          = userVm.FullName,
                ProfilePictureUrl = userVm.ProfilePictureUrl,
                Roles             = userVm.Roles,
                Token             = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken),
                TokenExpires      = jwtSecurityToken.ValidTo,
                TokenIssued       = jwtSecurityToken.ValidFrom,
                RefreshToken      = refreshToken,
                Email             = userVm.Email
            };

            return(response);
        }
Пример #14
0
        public async Task LoginAsync(string username)
        {
            LoginRequestData request = new LoginRequestData
            {
                Username = username
            };

            var response = await PostAsync <LoginRequestData, LoginResponseData>(loginUrl, request).ConfigureAwait(false);

            this.token      = response.Token;
            this.isLoggedIn = true;

            client.DefaultRequestHeaders.Add("Authorization", token.ToString());
        }
        private static async Task Login(string username, string password)
        {
            string json = LoginRequestData.CreateLoginRequestDataAsJson(username, password);
            string url  = Constants.REST_MULTIDIALOGO_STAGE_HOST + "/users/login";

            HttpResponseMessage response = await http.SendAsync(Utils.CreateRequest(url, null, Utils.CreateStringContent(json), "Post"));

            string responseContent = await response.Content.ReadAsStringAsync();

            AuthResponse authResponse = JsonConvert.DeserializeObject <AuthResponse>(responseContent);

            Console.WriteLine("Nuovo token ricevuto: " + authResponse.GetTokenResponse().Token);

            StoreTokens(authResponse);
        }
    private void OnclientLogin(IClient client, LoginRequestData data)
    {
        if (PlayersByName.ContainsKey(data.Name))
        {
            using (Message message = Message.CreateEmpty((ushort)Tags.LoginRequestDenied))
            {
                client.SendMessage(message, SendMode.Reliable);
            }
            return;
        }

        // In the future the ClientConnection will handle its messages
        client.MessageReceived -= OnMessage;

        new ClientConnection(client, data);
    }
Пример #17
0
        public IActionResult Login([FromBody] LoginRequestData user)
        {
            User foundUser = _context.Riders.SingleOrDefault <Rider>(
                r => r.UserName == user.UserName && r.Password == Auth.Hash(user.Password, r.Salt)
                );

            if (foundUser != null)
            {
                AuthorizationResponseData ResponseData = new AuthorizationResponseData();
                ResponseData.UserId        = foundUser.ID;
                ResponseData.Authorization = Auth.GenerateJWT(foundUser);
                ResponseData.FirstName     = foundUser.FirstName;
                ResponseData.UserName      = foundUser.UserName;
                ResponseData.Role          = foundUser.Role;
                return(Ok(ResponseData));
            }

            return(NotFound());
        }
    // serialize login request data
    public bool Serialize(LoginRequestData data)
    {
        // clear buffer
        Clear();

        // serialize element
        bool result = true;

        result &= Serialize(data.id);
        result &= Serialize(".");
        result &= Serialize(data.password);

        // failure serialize -> method exit
        if (!result)
        {
            return(false);
        }

        // success serialize -> return result
        return(result);
    }
Пример #19
0
        public async Task <LoginResultData> Login(string userName, string password)
        {
            var url     = string.Format(RequestPattern, _masterUrl, LoginAction);
            var payload = new LoginRequestData {
                Agent = new LoginRequestData.AgentData {
                    Name    = "Minecraft",
                    Version = 1
                },
                Platform = new LoginRequestData.PlatformData {
                    Name     = Platform.Name,
                    Version  = Platform.Version,
                    WordSize = Platform.WordSize
                },
                UserName = userName,
                Password = password,
                Ticket   = _ticket,
                Version  = _version
            };

            _log.Info($"Logging as {userName}...");
            LoginResultData reply;

            try {
                reply = await PostJson <LoginResultData>(url, payload);
            }
            catch (Exception e) {
                _log.Error(e.Message);
                throw;
            }

            if (reply.Error != null)
            {
                _log.Error($"{reply.Error} '{reply.ErrorMessage}'");
                throw new ErrorAnswerException(reply.ErrorMessage ?? reply.Error);
            }

            _log.Info($"at: '{reply.AccessToken}', ct: '{reply.ClientToken}'");
            return(reply);
        }
Пример #20
0
        private SFRestRequest BuildLoginRequest()
        {
            // build uri
            var loginUrl = session.BuildLoginUrl();

            LoginRequestData data = new LoginRequestData()
            {
                loginName        = session.properties[SFSessionProperty.USER],
                password         = session.properties[SFSessionProperty.PASSWORD],
                accountName      = session.properties[SFSessionProperty.ACCOUNT],
                clientAppId      = ".NET",
                clientAppVersion = SFEnvironment.Version,
                clientEnv        = SFEnvironment.ClientEnv,
            };

            int connectionTimeoutSec = int.Parse(session.properties[SFSessionProperty.CONNECTION_TIMEOUT]);

            return(session.BuildTimeoutRestRequest(loginUrl, new LoginRequest()
            {
                data = data
            }));
        }
        public HttpRequestMessage BuildLoginRequest(AuthInfo authInfo, SessionInfo sessionInfo)
        {
            var requestUri = BuildLoginUrl(sessionInfo);

            var data = new LoginRequestData()
            {
                LoginName         = authInfo.User,
                Password          = authInfo.Password,
                AccountName       = authInfo.Account,
                ClientAppId       = _clientInfo.DriverName,
                ClientAppVersion  = _clientInfo.DriverVersion,
                ClientEnvironment = _clientInfo.Environment
            };

            var requestBody = new LoginRequest()
            {
                Data = data
            };
            var jsonBody = JsonSerializer.Serialize(requestBody, _jsonSerializerOptions);
            var request  = BuildJsonRequestMessage(requestUri, HttpMethod.Post, jsonBody);

            return(request);
        }
        private SFRestRequest BuildExternalBrowserLoginRequest(string token, string proofKey)
        {
            // build uri
            var loginUrl = session.BuildLoginUrl();

            LoginRequestData data = new LoginRequestData()
            {
                loginName        = session.properties[SFSessionProperty.USER],
                clientAppId      = ".NET",
                clientAppVersion = SFEnvironment.Version,
                clientEnv        = SFEnvironment.ClientEnv,
                Token            = token,
                ProofKey         = proofKey,
                Authenticator    = AUTH_NAME,
            };

            int connectionTimeoutSec = int.Parse(session.properties[SFSessionProperty.CONNECTION_TIMEOUT]);

            return(session.BuildTimeoutRestRequest(loginUrl, new LoginRequest()
            {
                data = data
            }));
        }
        private SFRestRequest BuildOktaLoginRestRequest(string samlRawHtmlString)
        {
            // build uri
            var loginUrl = session.BuildLoginUrl();

            LoginRequestData data = new LoginRequestData()
            {
                loginName         = session.properties[SFSessionProperty.USER],
                password          = session.properties[SFSessionProperty.PASSWORD],
                accountName       = session.properties[SFSessionProperty.ACCOUNT],
                clientAppId       = SFEnvironment.DriverName,
                clientAppVersion  = SFEnvironment.DriverVersion,
                clientEnv         = SFEnvironment.ClientEnv,
                RawSamlResponse   = samlRawHtmlString,
                SessionParameters = session.ParameterMap,
            };

            int connectionTimeoutSec = int.Parse(session.properties[SFSessionProperty.CONNECTION_TIMEOUT]);

            return(session.BuildTimeoutRestRequest(loginUrl, new LoginRequest()
            {
                data = data
            }));
        }
Пример #24
0
        // login request
        public void ReceiveLoginRequest(Socket clientSocket, byte[] data)
        {
            // packet serialize
            LoginRequestPacket receivePacket    = new LoginRequestPacket(data);
            LoginRequestData   loginRequestData = receivePacket.GetData();

            // process
            bool   result;
            string resultString;

            result = dataProcessor.LoginPlayer(clientSocket, loginRequestData.id, loginRequestData.password, out resultString);

            // make result data
            LoginResultData sendData = new LoginResultData();

            sendData.loginResult = result;
            sendData.message     = resultString;

            //make result packet
            LoginResultPacket sendPacket = new LoginResultPacket(sendData);

            // send result packet
            networkProcessor.Send(clientSocket, sendPacket);
        }
Пример #25
0
 /// <see cref="BaseAuthenticator.SetSpecializedAuthenticatorData(ref LoginRequestData)"/>
 protected override void SetSpecializedAuthenticatorData(ref LoginRequestData data)
 {
     data.RawSamlResponse = samlRawHtmlString;
 }
Пример #26
0
 /// <see cref="BaseAuthenticator.SetSpecializedAuthenticatorData(ref LoginRequestData)"/>
 protected override void SetSpecializedAuthenticatorData(ref LoginRequestData data)
 {
     // Add the token and proof key to the Data
     data.Token    = samlResponseToken;
     data.ProofKey = proofKey;
 }
Пример #27
0
        public void LoginPlayer(string username, string password, MonoBehaviour caller)
        {
            LoginRequestData lData = new LoginRequestData(username, password);

            caller.StartCoroutine(webRequest.SendPost(loginSuffix, lData.GetAsJson(), RegisterFinished, RequestError));
        }
Пример #28
0
 public static string RequestAccount(LoginRequestData data)
 {
     return(request.Send("/launcher/profile/get", Json.Serialize(data)));
 }
Пример #29
0
 public static string RequestRemove(LoginRequestData data)
 {
     return(request.Send("/launcher/profile/remove", Json.Serialize(data)));
 }
Пример #30
0
 /// <see cref="BaseAuthenticator.SetSpecializedAuthenticatorData(ref LoginRequestData)"/>
 protected override void SetSpecializedAuthenticatorData(ref LoginRequestData data)
 {
     // Only need to add the password to Data for basic authentication
     data.password = session.properties[SFSessionProperty.PASSWORD];
 }