示例#1
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", "Error"));
            }

            var user = _userService.CreateUser(new User
            {
                Email        = model.Email,
                FirstName    = model.FirstName,
                SecondName   = model.SecondName,
                PasswordHash = PasswordHashHelper.GetHash(model.Password),
                UserRoles    = new Collection <UserRole> {
                    new UserRole {
                        ObjectState = ObjectState.Added, RoleId = 2
                    }
                },
                SentMessages     = new Collection <Message>(),
                ReceivedMessages = new Collection <Message>(),
                ObjectState      = ObjectState.Added
            });

            AuthHelper.LogInUser(HttpContext, user.Email);

            return(RedirectToAction("Index", "Home"));
        }
示例#2
0
        public User GetUserByEmailAndPassword(string email, string password)
        {
            var passwordHash = PasswordHashHelper.GetHash(password);

            return(Query(x =>
                         x.Email.ToLower() == email.ToLower() &&
                         x.PasswordHash == passwordHash)
                   .Include(user1 => user1.UserRoles)
                   .Include(user1 => user1.UserRoles.Select(role => role.Role))
                   .Select().FirstOrDefault());
        }
示例#3
0
 public override User GenerateEntity(int index)
 {
     return(new User
     {
         FirstName = Configurations.AdminFirstName,
         SecondName = Configurations.AdminSecondName,
         Email = Configurations.AdminEmail,
         PasswordHash = PasswordHashHelper.GetHash(Configurations.AdminPassword),
         ObjectState = ObjectState.Added
     });
 }
示例#4
0
        private void loginBtn_Click(object sender, RoutedEventArgs e)
        {
            var adminList    = _db.AppAdmins.ToList();
            var hashPassword = PasswordHashHelper.GetHash(passwordBox.Password.Trim());


            if (adminList.Find(x => x.login.Equals(textBox.Text.Trim()) && x.password.Equals(hashPassword)) == null)
            {
                MessageBox.Show("Bledny login i/lub haslo", "Bledne dane logowania.", MessageBoxButton.OK, MessageBoxImage.Error);
                textBox.Clear();
                passwordBox.Clear();
                return;
            }

            this.DialogResult = true;
            this.Close();
        }
示例#5
0
        public async Task <ActionResult <Tokens> > LoginUser(LoginInput loginInput)
        {
            try
            {
                var exists = _context.Users.Any(x => x.Username == loginInput.username);
                if (exists)
                {
                    var user = await _context.Users.Where(x => x.Username == loginInput.username).FirstOrDefaultAsync();

                    if (PasswordHashHelper.GetHash(loginInput.password, user.Salt) == user.Password)
                    {
                        var token = _context.Tokens.FirstOrDefault(x => x.UserID == user.Id);

                        // Create a new token on every successful login

                        if (token == null)
                        {
                            return(default);
示例#6
0
        public async Task <ActionResult <Users> > RegisterUser(LoginInput input)
        {
            try
            {
                if (!_context.Users.Any(x => x.Username == input.username))
                {
                    DataSyncManager dataSyncManager = new DataSyncManager(_syncDbConnectionString);

                    byte[] salt = new byte[128 / 8];
                    using (var rng = RandomNumberGenerator.Create())
                    {
                        rng.GetBytes(salt);
                    }

                    Users newUser = new Users()
                    {
                        Username      = input.username,
                        Password      = PasswordHashHelper.GetHash(input.password, salt),
                        Salt          = salt,
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    _context.Users.Add(newUser);
                    await _context.SaveChangesAsync();

                    Users createdUser = await _context.Users.FirstOrDefaultAsync(x => x.Username == input.username);

                    Tokens newToken = new Tokens()
                    {
                        UserID        = createdUser.Id,
                        Token         = TokenHelper.GenerateToken(input.username, TokenHelper.TokenType.Standard),
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    Accounts newAccount = new Accounts()
                    {
                        UserID        = createdUser.Id,
                        Balance       = 1000000.99,
                        EnvironmentId = RDSEnums.EnvironmentId.ProductionPrimary
                    };

                    _context.Tokens.Add(newToken);
                    _context.Accounts.Add(newAccount);
                    await _context.SaveChangesAsync();

                    if (_dataSyncEnabled)
                    {
                        Users replicatedUser = new Users()
                        {
                            Username      = newUser.Username,
                            Password      = newUser.Password,
                            Salt          = newUser.Salt,
                            EnvironmentId = RDSEnums.EnvironmentId.ProductionSecondary
                        };

                        await dataSyncManager.SyncNewUser(replicatedUser, newToken.Token);
                    }

                    StatusOutput output = new StatusOutput()
                    {
                        message = StatusMessages.UserCreatedMessage
                    };
                    return(Ok(output));
                }
                else
                {
                    StatusOutput output = new StatusOutput()
                    {
                        message = StatusMessages.UserExistsMessage
                    };
                    return(Ok(output));
                }
            }
            catch (Exception e)
            {
                Log.Fatal(e, $"{nameof(RegisterUser)}");
                return(StatusCode(500));
            }
        }