示例#1
0
        /// <summary>
        /// Управляет авторизацией пользователя
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public static ReturnAuthData AuthClient(AuthData data)
        {
            data.username = data.username.ToLower();
            var user = GetUserByName(data.username);

            if (user != null)
            {
                var result = new ReturnAuthData {
                    success = false
                };
                if (Base64Decode(user.Password) == data.password)
                {
                    result.success = true;
                    result.token   = user.Token;
                    result.role    = user.Role;
                    return(result);
                }
                else
                {
                    ProceedActions.Log("Event", $"Неудачная попытка авторизоваться под аккаунтом {user.Username}");
                    result.message = "wrongpassword";
                    return(result);
                }
            }
            else
            {
                return(CreateUser(data.username, data.password));
            }
        }
示例#2
0
        /// <summary>
        /// Управляет созданием аккаунта
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static ReturnAuthData CreateUser(string username, string password)
        {
            var result = new ReturnAuthData {
                success = false
            };

            using (var db = new Entities())
                try
                {
                    var user = new Account {
                        Username = username, Password = Base64Encode(password), Role = 0, Token = "Token" + Base64Encode(username + "salt")
                    };
                    db.Accounts.Add(user);
                    db.SaveChanges();

                    int newIdentityValue = user.UserID;
                    db.Players.Add(new Player {
                        UserID = newIdentityValue, Playername = username
                    });
                    db.Bases.Add(new Base {
                        Basename = username + "Base", OwnerID = newIdentityValue, CoordX = 1, CoordY = 1, Level = 1, IsActive = true
                    });
                    db.Resources.Add(new Resource {
                        Instance = "bas" + newIdentityValue, Credits = 200, Energy = 200, Neutrino = 0.0
                    });
                    db.SaveChanges();
                    result.success = true;
                    result.token   = user.Token;
                    result.role    = user.Role;
                    return(result);
                }
                catch (Exception ex)
                {
                    ProceedActions.Log("Exception", $"Исключение: {ex.Message}, функция AccountManager.CreateUser");
                    result.message = ex.Message;
                    return(result);
                }
        }